Я действительно запутался с этим.Вот мой код
class inner
{
var $val = 0;
}
class outer
{
var $obj=null;
function outer()
{
$this->obj = new inner;
}
function get_obj()
{
return $this->obj;
}
}
$app = new outer;
$obj = &$app->get_obj(); //get object by reference (& is not necessary in PHP5)
$obj->val = 1; //change something
echo $app->obj->val; //check whether it affected the original object source
//here it should display 1
Когда я тестирую это на своем локальном сервере, который является PHP 5.2.10-2ubuntu6.4, все работает нормально и отображает 1. Когда я тестирую это на PHP моего клиентаСервер версии 5.2.9, он отображает 0. Есть какая-то известная ошибка PHP или может быть какая-то настройка php.ini, которая может повлиять на это поведение?