создать пустую копию другого экземпляра в symfony - PullRequest
0 голосов
/ 20 февраля 2020

Можно ли скопировать экземпляр объекта в symfony без его значений? Например, у меня есть следующая сущность

class Dog{
private $_name;
__construct(){
$this->_name = null;
}
}
setName($name){
$this->_name = $name;
return $this;
}

getName(){
return $this->_name;
}

}

$billy = new Dog();
$billy->setName('billy')

Могу ли я получить копию "$ billy", чтобы получить новый экземпляр без значения "billy" для параметра name?

Я знаю, что могу скопировать его и установить новое имя, или я могу просто создать новый его экземпляр, используя new Dog (), но существует ли способ сделать это таким образом?

1 Ответ

0 голосов
/ 20 февраля 2020

Вы можете перезаписать маги c PHP метод __clone внутри Dog объекта для сброса $name значение

class Dog {
    private $name;

    public function __construct() {
        $this->name = null;
    }

    public function setName($name) {
        $this->name = $name;
        return $this;
    }

    public function getName() {
        return $this->name;
    }

    public function __clone() {
        $this->name = null;
    }
}

$billy = new Dog();
$billy->setName('Billy');
$billy->getName(); // Returns 'Billy'

$clonedBilly = clone $billy;
$clonedBilly->getName(); // Returns null
...