А как насчет переменных в PHP6, можем ли мы сделать это для переменных, например:
$this->data =& $_SESSION;
Я не вижу причин, почему нет - PHP не будет удалять ссылки, так как они слишком полезны. Нет другого способа создать ссылку на переменную.
Передача по ссылке в течение некоторого времени устарела. Это просто означает, что вместо этого:
function foo($a) { return ++$a; }
foo(&$my_a);
Вы бы сделали это:
function foo(&$a) { return ++$a; }
foo($my_a);
Это приводит к гораздо более понятному и легкому для понимания стилю программирования, а также гарантирует, что на переменные всегда ссылаются, когда вы ожидаете, а не когда вы этого не делаете.
Особый случай имеет дело с объектами - они всегда передаются по ссылке, и единственный способ имитировать передачу по значению - использовать clone
:
$a = new StdClass();
$a->foo = 'bar';
$b = $a;
$a->foo = 'qux';
// $b->foo is 'qux' too
$a = new StdClass();
$a->foo = 'bar';
$b = clone $a;
$a->foo = 'qux';
// $a->foo is 'qux' but $b->foo is 'bar'
Надеюсь, это поможет!