Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 微观优化:通过引用指定构造函数属性_Php_Micro Optimization - Fatal编程技术网

Php 微观优化:通过引用指定构造函数属性

Php 微观优化:通过引用指定构造函数属性,php,micro-optimization,Php,Micro Optimization,很多年前,我打开PHP手册开始阅读,就像我是一个完全的PHP新手一样,面对现实,阅读那些并不有趣或有用的章节,有时会被跳过 有一件事在一章中引起了我的注意 有人写道,当通过引用将构造函数参数分配给属性时,在内部,用于参数的相同符号(我认为是C中的术语)将用于属性,而不是仅为分配创建一个新符号: <?php class MyClass { protected $myProperty; public function __construct( $property ) {

很多年前,我打开PHP手册开始阅读,就像我是一个完全的PHP新手一样,面对现实,阅读那些并不有趣或有用的章节,有时会被跳过

有一件事在一章中引起了我的注意

有人写道,当通过引用将构造函数参数分配给属性时,在内部,用于参数的相同符号(我认为是C中的术语)将用于属性,而不是仅为分配创建一个新符号:

<?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结构。但如果属性是数组,则速度似乎相反。