PHP魔术方法以及关于独立实例与相连实例的全面讲解
<?php //魔术方法 //当包含多个类 //1.自动装载类的魔术方法__autoload() function__autoload($classname){ if(isset($classname)){ require_once$classname.'.class.php'; } } /*$computer1=newComputer(); $computer1->addList('dalisng',234); echo$computer1;*/ //__call()屏蔽调用方法时候产生的错误,当我们调用一个不存在的方法时候,会自动调用__call()方法。 //独立实例,两个实例各自建立,互不干涉 $computer2=newComputer(); echo$computer2->name;echo"<br/>"; $computer3=newComputer(); echo$computer3->name;echo"<br/>"; $computer3->name="大亮"; echo'$computer3->name:'.$computer3->name;echo"<br/>"; echo'$computer2->name:'.$computer2->name;echo"<br/>"; echo"<hr/>"; //相连实例,即用等于号来开辟一个新的实例,此时两个实例共同指向一个内存地址,一损俱损,一荣俱荣 $computer4=newComputer(); echo'$computer4->name:'.$computer4->name;echo"<br/>"; $computer5=$computer4; echo'$computer5->name:'.$computer5->name;echo"<br/>"; $computer4->name="大亮"; echo'$computer4->name:'.$computer4->name;echo"<br/>"; echo'$computer5->name:'.$computer5->name;echo"<br/>"; echo"<hr/>"; //克隆__clone,克隆的新实例和被克隆的实例是两个相互独立的个体,虽然属性值相同,但是属性存放的地址不同,所以克隆后你我生死无关 $computer6=newComputer(); echo'$computer6->name:'.$computer6->name;echo"<br/>"; $computer7=clone$computer6; echo'$computer7->name:'.$computer7->name;echo"<br/>"; $computer6->name="克隆"; echo'$computer6->name:'.$computer6->name;echo"<br/>"; echo'$computer7->name:'.$computer7->name;echo"<br/>";
Computer.class.php
<?php classComputer{ public$name="1234"; function__construct(){ echo"youareright!"; } function__call($methodName,$argsList){//当方法不存在的时候会自动调用此方法,$argsList是相应的参数 echo$methodName."()方法不存在!"; echo"<pre>"; print_r($argsList); echo"</pre>"; } privatefunction__toString(){//当用户输出不存在的字符串时候,该方法自动调用比如echo对象名 echo"我是对象的字符串!"; } }
以上就是小编为大家带来的PHP魔术方法以及关于独立实例与相连实例的全面讲解全部内容了,希望大家多多支持毛票票~