Php 微观优化:通过引用指定构造函数属性
很多年前,我打开PHP手册开始阅读,就像我是一个完全的PHP新手一样,面对现实,阅读那些并不有趣或有用的章节,有时会被跳过 有一件事在一章中引起了我的注意 有人写道,当通过引用将构造函数参数分配给属性时,在内部,用于参数的相同符号(我认为是C中的术语)将用于属性,而不是仅为分配创建一个新符号:Php 微观优化:通过引用指定构造函数属性,php,micro-optimization,Php,Micro Optimization,很多年前,我打开PHP手册开始阅读,就像我是一个完全的PHP新手一样,面对现实,阅读那些并不有趣或有用的章节,有时会被跳过 有一件事在一章中引起了我的注意 有人写道,当通过引用将构造函数参数分配给属性时,在内部,用于参数的相同符号(我认为是C中的术语)将用于属性,而不是仅为分配创建一个新符号: <?php class MyClass { protected $myProperty; public function __construct( $property ) {
<?php
class MyClass {
protected $myProperty;
public function __construct( $property ) {
// Here!
$this -> myProperty =& $property;
}
public function getPropertyValue() {
return $this -> myProperty;
}
}
PHP变量不是C变量,如果您做了非常具体的C-ish事情,并且确切地知道自己在做什么,那么ref对性能几乎没有影响,除了内存使用之外。[例如:大型结构上的就地操作]通常情况下,人们在不需要的时候使用REF,并最终在代码中击中自己的脚,因为现在您的作用域正在泄漏。但是TL;DR PHP非引用PHP变量或多或少都是写时复制的refcounted结构。但如果属性是数组,则速度似乎相反。