在PHP中通过引用分配对象


Assign objects by reference in PHP?

此代码有效。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"

这个代码可以吗?

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

然而,使用一个变量而不首先声明它是一个坏习惯,所以当您在不首先声明$a=null的情况下调用feed($a)时,您的IDE会给您带来错误;