PHP5 clone

Profic

just Profic (PHP5 BetaTeam)
PHP5 clone

Можно ли как-нить в конструкции
PHP:
class a {
    public $a = 0;

    function __clone () {
        $that->a--; //???
    }
}
$a = new a;
$b = clone $a;
в __clone получить доступ к тому объекту, с которого мы копируем?
В ранней документации по ZE2 видел $that, но сейчас его нет. Видел также в changelog-е, что поменяли механизм clone.
Или это из серии "я не должен этого хотеть"?
 

.des.

Поставил пиво кому надо ;-)
Или это из серии "я не должен этого хотеть"?
Скорее всего.
Ведь это все равно что присваивание меняет right value. Это конечно может иногда и желательно, но это не интуитивно и похоже на плохой дизайн.

Вы бы лучше пояснили задачу.
 

Profic

just Profic (PHP5 BetaTeam)
>Ведь это все равно что присваивание меняет right value
Точно :) Однако в ранних версиях php5 такое позволялось :)
>Вы бы лучше пояснили задачу
Задача была проста - сделать копию объектов, являющихся свойствами копируемого объекта (это я для простоты такой мелкий пример привёл). Но потом прочитав внимательно changelog и заметив там
- Redesigned clone by adding a clone keyword (clone $obj) and copying all properties before __clone() is called. Also allows calling parent __clone function by using parent::__clone(). (Zeev, Andi)
cделал просто
PHP:
$this->prop = clone $this->prop
ЗЫ. Всем спасибо, все свободны :)
 
Сверху