__clone
PHP 里面有一个叫做 __clone 的魔术方法 ... 这会在对象被克隆的时候自动被调用 ... 如果你想在克隆对象的时候去做点事的话,可以把要做的事,放在这个 __clone 方法里面。
下面,我们在 Track 这个类里面去使用空上 __clone 方法 ... 这样如果有人克隆属于 Track 的类的对象的时候,就会去执行这个函数。 先输入 public function ... 然后输入两个下划线 ... clone .. 一般魔术方法都会使用两个下划线开头 ...
在这个函数里,可以去设计一下要做的事情 ... 这里我们只是简单的在 track_name 这个属性的值的后面,加上一个 副本 这两个字 ...
public function __clone() {
$this->track_name .= ' 副本';
}
这样,如果克隆了 Track 类的对象的时候,在不设置 track_name 这个属性的值的情况下,会在这个属性的值的后面加上 副本 这两个字。
注释掉这行设置 track_name 的代码 ...
//$magic_mix->track_name = 'Magic Mix';
回到浏览器 ....
你会看到,克隆以后的 magic_mix 这个对象的 track_name 属性的值的后面 ... 会加上 副本 这两个字。