PHP5 clone

  • Автор темы Автор темы Profic
  • Дата начала Дата начала

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.
Или это из серии "я не должен этого хотеть"?
 
Или это из серии "я не должен этого хотеть"?
Скорее всего.
Ведь это все равно что присваивание меняет right value. Это конечно может иногда и желательно, но это не интуитивно и похоже на плохой дизайн.

Вы бы лучше пояснили задачу.
 
>Ведь это все равно что присваивание меняет 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

ЗЫ. Всем спасибо, все свободны :)
 
Сверху