您好,欢迎访问一九零五行业门户网

php在clone时访问原对象内容

$p2 克隆自 $p1,我希望在 __clone() 注释的位置输出一句“我克隆自:evan”,应该怎么写?
仿佛听说有 $that 这个东西,但是不能用。在 manual 中也没有找到相关的介绍。
代码如下:
name = $name; } function __clone() { $this -> name = wenryxu; //echo 我克隆自:.name } function say() { echo 我的名字是:.$this -> name.
; }}$p1 = new person(evan);$p1 -> say();$p2 = clone $p1;$p2 -> say();

期望的结果是:
我的名字是:evan我克隆自:evan我的名字是:wenryxu

谢谢各位!
回复内容: $p2 克隆自 $p1,我希望在 __clone() 注释的位置输出一句“我克隆自:evan”,应该怎么写?
仿佛听说有 $that 这个东西,但是不能用。在 manual 中也没有找到相关的介绍。
代码如下:
name = $name; } function __clone() { $this -> name = wenryxu; //echo 我克隆自:.name } function say() { echo 我的名字是:.$this -> name.
; }}$p1 = new person(evan);$p1 -> say();$p2 = clone $p1;$p2 -> say();

期望的结果是:
我的名字是:evan我克隆自:evan我的名字是:wenryxu

谢谢各位!
代码如下,应该不难想的
name = $name; } function __clone() { echo 我克隆自:.$this -> name.\n; $this -> name = wenryxu; } function say() { echo 我的名字是:.$this -> name.\n; }}$p1 = new person(evan);$p1 -> say();$p2 = clone $p1;$p2 -> say();
name = $name; } function __clone() { echo 我克隆自: . $this->name . \n; $this->name = wenryxu; } function say() { echo 我的名字是:.$this->name.\n; }}$p1 = new person(evan);$p1->say();$p2 = clone $p1;$p2->say();
这样就可以了
事实上 clone 只是浅复制
复制时对象内的成员变量都只是引用
所以直接调用就能获取到原来的值
输出
我的名字是:evan
我克隆自:evan
我的名字是:wenryxu
其它类似信息

推荐信息