我有簡單的代碼:PHP - 傳遞參數的功能
class A {
public $var = 1;
function inc() {$this->var++;}
}
function foo($a) {
for($i = 0; $i < 10; $i++) {
$a->inc();
}
}
$a = new A();
foo($a);
$v = $a->var;
echo "var value is $v \n";
我期待得到印刷的1的價值,但我得到11 不應該PHP通的說法與拷貝構造函數?
爲什麼你會得到1,因爲你已經調用了循環來迭代10次 –
我想他想知道的是'$ a'在函數的局部範圍內被操作,'$ v'是在全局範圍內訪問'$ a-> var',並且因此應該具有初始值'1'而不是'11' ...簡短的回答是,*它不起作用,但是我想想我可以看到他來自哪裏。 – CD001
[PHP的變量是通過值還是通過引用傳遞的]可能的重複?(http://stackoverflow.com/questions/879/are-php-variables-passed-by-value-or-by-reference) – Winter