php中的“克隆羊”

php中的“克隆羊”,第1张

概述php中的“克隆羊” 定义:克隆对象clone,即通过已有的对象复制一个新的同样的对象,但是两者之间并非同一个对象。

1.对象克隆是通过clone关键字实现,即:clone 对象;

<?PHPclass Saler{  	//属性  	public $count;				  	private $money;}//实例化$s1 = new Saler();$s1->count = 1;//克隆$s2 = clone $s1;?>

2.克隆出来的对象与原来对象是两个内存地址,因此是两个不同的对象

<?PHP//接上述代码$s2->count = 2;echo $s1->count;		//1,没有变化?>

3. 对象在实例化的时候会自动调用存在的构造方法__construct(),同样的,在类的内部,PHP允许定义一个__clone()的方法,在对象被克隆后,新克隆出来的对象会自动调用

<?PHPclass Saler{  	//属性  	public $count;				  	private $money;    //克隆方法    public function __clone(){        var_dump($this);			//编号为2,代表是克隆出来的对象        $this->count++;    }}//实例化$s1 = new Saler();$s1->count = 1;//克隆$s2 = clone $s1;?>

4.如果不允许对象被克隆,可以将__clone()方法私有化(本质是不允许对象在外部被克隆)

<?PHPclass Saler{  	//属性  	public $count;				  	private $money;    //私有化克隆方法    private function __clone(){}}//实例化$s1 = new Saler();$s1->count = 1;//克隆$s2 = clone $s1;			//致命错误:不允许对象在外部访问一个私有方法?>

推荐:php视频教程 总结

以上是内存溢出为你收集整理的php中的“克隆羊”全部内容,希望文章能够帮你解决php中的“克隆羊”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1157729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存