<?php//魔术方法//当包含多个类//1.自动装载类的魔术方法__autoload()function __autoload($classname){if (isset($classname)){require_once $classname.".class.php";}}/* $computer1=new Computer();$computer1->addList("dalisng",234);echo $computer1; *///__call()屏蔽调用方法时候产生的错误,当我们调用一个不存在的方法时候,会自动调用__call()方法。//独立实例,两个实例各自建立,互不干涉$computer2=new Computer();echo $computer2->name;echo "<br/>";$computer3=new Computer();echo $computer3->name;echo "<br/>";$computer3->name="大亮";echo "$computer3->name:".$computer3->name;echo "<br/>";echo "$computer2->name:".$computer2->name;echo "<br/>";echo "<hr/>";//相连实例,即 用等于号来开辟一个新的实例,此时两个实例共同指向一个内存地址,一损俱损,一荣俱荣$computer4=new Computer();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=new Computer();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<?phpclass Computer{public $name="1234";function __construct(){echo "you are right!";}function __call($methodName,$argsList){//当方法不存在的时候会自动调用此方法,$argsList是相应的参数echo $methodName."()方法不存在!";echo "<pre>";print_r($argsList);echo "</pre>";}private function __toString(){ //当用户输出不存在的字符串时候,该方法自动调用 比如echo 对象名echo "我是对象的字符串!";}}
以上就是小编为大家带来的PHP魔术方法以及关于独立实例与相连实例的全面讲解全部内容了,希望大家多多支持脚本之家~