PHP魔术方法:__clone__toString
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP魔术方法:__clone__toString,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2213字,纯文字阅读大概需要4分钟。
内容图文
![PHP魔术方法:__clone__toString](/upload/InfoBanner/zyjiaocheng/153/15b292df0e7444a3b9142300a078a5e4.jpg)
目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。
下面我们来看看两个魔术方法:__clone()和__toString().
__clone() - 当对象克隆的时候自动加载此方法
__toString() - 当对象需要echo打印输出的时候自动加载此方法
__clone()
pb = ++self::$pa; } public function __clone(){ $this->pb = 'no zuo no die'; } } $a = new example; $b = new example; $c = clone $b; $b->pb = 'I Love You So Much!'; echo $a->pb; echo '
'; echo $b->pb; echo '
'; echo $c->pb; echo '
'; echo $b->pb; ?>
结果如下
1 ------------------------------------------------------------------------------------ I Love You So Much! ------------------------------------------------------------------------------------ no zuo no die /*要不是有__clone()这个魔术方法,这边的结果应该是2*/ ------------------------------------------------------------------------------------ I Love You So Much!
php手册给了我们一个例子有些难以看懂,如下
instance = ++self::$instances; } public function __clone() { $this->instance = ++self::$instances; } } class MyCloneable { public $object1; public $object2; function __clone() { // 强制复制一份this->object, 否则仍然指向同一个对象 $this->object1 = clone $this->object1; } } $obj = new MyCloneable(); $obj->object1 = new SubObject(); $obj->object2 = new SubObject(); $obj2 = clone $obj; print("Original Object:\n"); print_r($obj); print("Cloned Object:\n"); print_r($obj2); ?>
最后的结果
Original Object: MyCloneable Object ( [object1] => SubObject Object ( [instance] => 1 ) [object2] => SubObject Object ( [instance] => 2 ) ) Cloned Object: MyCloneable Object ( [object1] => SubObject Object ( [instance] => 3 /*可能这里比较难以理解,其实就是$obj2当克隆的时候将最后的instance为2的结果克隆,并且再执行SubObject::__clone方法*/ ) [object2] => SubObject Object ( [instance] => 2 ) )
__toString()
foo = $foo; } public function __toString() { return $this->foo; } } $class = new TestClass('Hello'); echo $class; ?>
结果
Hello
以上就介绍了PHP 魔术方法: __clone __toString,包括了PHP魔术方法方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的PHP魔术方法:__clone__toString全部内容,希望文章能够帮你解决PHP魔术方法:__clone__toString所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。