PHP中的function& foo()和function foo(& $ var)有什么区别?
代码示例:
<?php
function foo(&$var){
$var++;
}
function &bar(){
$a= 5;
return $a;
}
foo( bar() );
答案 0 :(得分:0)
这里的主要问题是谁想要改变或阅读其变量。 在第一个示例中,您希望函数更改外部变量。在示例二中,您希望外部世界更改内部变量。并且您可以从不同的范围获得更改的值。
第二个版本的更好用例是:
class example {
public $test = 23;
public function &exposeTest() {
return $this->test;
}
}
$example1 = new example;
$testref = &$example1->exposeTest();
$testref++;
echo($example1->test); // 24
$example1->test++;
echo($testref); // 25
因此除了设计问题之外并没有什么区别,没有OOP可能无关紧要。