在PHP中通过引用分配对象?

时间:2016-07-18 15:29:24

标签: php reference

此代码有效。 php7没有错误。但我的IDE显示错误。 IDE支持告诉我这段代码无效。这段代码是否正常?

class A {
    public function hop() {
        echo "hop";
    }
}

function feed(A & $a=null) { //this function assign $a reference to A instance
    $a = new A();
}
feed($a); //$a doesn't exists at this point
$a->hop(); //Say correctly "hop"

1 个答案:

答案 0 :(得分:0)

  

此代码是否正常?

PHP解释器本身不会抛出语法错误(代码不会运行)甚至是警告,所以这是有效的PHP代码

但是,在没有首先声明变量的情况下使用变量是不好的习惯,所以当你在没有先声明feed($a)的情况下调用$a=null时,你的IDE就是错误的。