php在clone时访问原对象内容
程序员文章站
2022-06-13 19:06:42
...
$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