"="개체를 참조로 지정하고 다른 변수 및 문자열 및 정수 같은 데이터 형식을 사용하면 "= &"을 사용하여 참조로 할당해야 함을 이해합니다. "= &"을 사용하여 명시 적으로 개체를 할당하면 할당에 영향을 미치지 않는 것처럼 보입니다. 그러나 개체를 전역에 할당 할 때 해당 개체는 전역에 할당됩니다.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에 할당 $이 위의 코드에서 앰퍼샌드를 제거하는 경우 :
는 다음과 같은 고려하십시오. 제 질문은 입니다. 앰퍼샌드를 사용하면 왜 이런 현상이 멈추는 걸까요?? 여기에 무슨 일이 일어나고 무엇
감사