为你先容PHP clone要害字
由于 clone 的方法现实上是对整个工具的内存地区举办了一次复制并用新的工具变量指向新的内存,因此赋值后的工具和原工具之间是彼此独立的。 工具克隆乐成后,它们中的成员要领、属性以及值是完全沟通的。假如要对克隆后副本的成员属性从头赋值,可以行使中先容的 __clone() 要领。 【示例】下面通过一个简朴的示例来演示一下 clone 要害字的行使。
<?php class Website{ public $name, $url; public function __construct($name, $url){ $this -> name = $name; $this -> url = $url; } public function output(){ echo $this -> name.','.$this -> url.'<br>'; } }
$obj = new Website('C说话中文网', ''); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); echo '<pre>'; var_dump($obj); var_dump($obj2); ?> 运行功效如下:C说话中文网, C说话中文网, object(Website)#1 (2) { ["name"]=> string(16) "C说话中文网" ["url"]=> string(27) "" } object(Website)#2 (2) { ["name"]=> string(16) "C说话中文网" ["url"]=> string(27) "" } 留意:假如行使=将一个工具赋值给一个变量,那么这时获得的将是一个工具的引用,通过这个变量变动属性的值将会影响原本的工具。 __clone() 把戏要领 __clone() 要领不可以或许直接被挪用,只有当通过 clone 要害字克隆一个工具时才可以行使该工具挪用 __clone() 要领。当建设工具的副本时,PHP 会搜查 __clone() 要领是否存在。假如不存在,那么它就会挪用默认的 __clone() 要领,复制工具的全部属性。假如 __clone() 要领已经界说过,那么 __clone() 要领就会认真配置新工具的属性。以是在 __clone() 要领中,只必要包围那些必要变动的属性就可以了。(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |