Screjet
Новичок
новое поведение ссылок пхп5?
есть код:
Результаты:
Вроде нормально (точнее уже привычно). Результат такой, который ожидается.
Вроде ненормально. Резутьтат точно не ожидаемый. Как будто аргументом получил копию объекта. Или снова сменили поведение? И по-старому нужно передавать объект по ссылке? (ужаснулся при мысли скока исправлять кода..)
есть код:
PHP:
class a {
function __construct( $sender ){
$this->sender = $sender;
}
function set_var(){
$this->sender->the_var = array(1,2,3);
}
}
class b {
function __construct(){
$this->a = new a($this);
$this->a->set_var();
}
function print_r(){
print_r($this);
}
}
$b = new b();
$b->print_r();
Код:
# php test_ref.php;php -v
b Object
(
[a] => a Object
(
[sender] => b Object
*RECURSION*
)
[the_var] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
PHP 5.0.3 (cli) (built: Mar 17 2005 16:02:35)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.2, Copyright (c) 2004-2004 eAccelerator, by eAccelerator
Код:
# php test_ref.php ;php -v
b Object
(
[a] => a Object
(
[sender] => b Object
(
[the_var] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
)
)
PHP 5.0.4 (cli) (built: Apr 25 2005 02:37:07)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.2, Copyright (c) 2004-2004 eAccelerator, by eAccelerator