據我所知,通過使用「=」對象通過引用來分配對象,對於其他變量和數據類型(如字符串和整數),您需要使用「= &」通過引用進行分配。當您明確使用「= &」通過引用分配對象時,它似乎不會影響分配。但是,當您將對象分配給全局對象時。php中的全局變量,對象和引用 - 它們是如何工作的?
考慮以下幾點:
<?php
$global_obj = null;
class my_class {
var $value;
public function __construct() {
global $global_obj;
$global_obj =& $this;
$GLOBALS['some_var'] = $this;
}
}
$a = new my_class();
$a->my_value = 5;
$global_obj->my_value = 10;
echo 'A: ' . $a->my_value; //5
echo '<br />';
echo 'Global Object: ' . $global_obj->my_value; //10
echo '<br />';
echo 'Globals Array Value: ' . $some_var->my_value; //5
?>
如果去掉符號上面$這個代碼是參考指派到$ global_obj。我的問題是爲什麼在那裏有&符號似乎停止發生?
感謝