Конструктор и ссылки

gerasim

Новичок
Конструктор и ссылки

Не пойму на первый взгляд простой вещи
PHP:
class foo {

    function foo() {
        $this->_var = 1;
    }
    function set_var() {
        $this->_var = 5;
    }
}

$_obj1 =& new foo(); (или = new foo() - тут все равно)
$_obj2 =& new foo();
Рассуждая, что "Ссылки в PHP это средство доступа к содержимому одной переменной под разными именами", используя ссылку в new ожидаю получить от имени разных переменных доступ к одному и тому же экземпляру класса, т.о. и к его же свойству
вызываю
PHP:
$_obj1->set_var();

Выведем содержимое объектов 1 и 2:
foo Object
(
    [_var] => 5
)

foo Object
(
    [_var] => 1
)
т.е. объекты все-таки разные

Получается, смысл оператора &new я понимаю неправильно. Прошу объяснить на пальцах, поскольку мануал уже зачитал
И тогда еще. Как мне получить в пхп4 две переменных, ссылающихся на один и тот же экземпляр, но не $_obj1 =& $_obj2 а именно конструктором
 

.des.

Поставил пиво кому надо ;-)
& new и new всегда создают новые объекты. В этом смысл этого оператора. & имеет значение только в php4 для указателя $this в конструкторе (подробнее в мануале)
То что хотите Вы можно найти по ключевым словам "singleton" или "паттерн singleton".
 

kugu

Новичок
Ещё есть статические свойства и методы, но в пхп5.
 
Сверху