| 
       php中魔术函数包括有tostring、call、clone、autoload几个常用的函数,希望此教程对各位朋友会有所帮助。 
面向对象开发总结 
1.对象的描述和配置。(可以理解为对对象的输出文字描述) 
2.对象方法的一场处理。(可以理解为出现异常时候,自定义更人性化的错误信息) 
3.克隆对象的应用。(可以理解为在原始对象上,克隆出一样的另一个对象,注意是另一个。) 
4.自动载入对象的方法。(可以理解为引用) 
1.对象描述和配置 
方法名:__tostring() 
格式代码如下: 
	
	- class My { 
 
	- function __tostring() { 
 
	- return "这里写这个类的文字描述";  
 
	- } 
 
	- } 
 
	- $p = new My(); 
 
	- echo $p; 
 
	 
 
实例代码如下: 
	
	- <?php 
 
	- class My { 
 
	-  function __toString() { 
 
	-   return "这个类的作用是,保卫地球。"; 
 
	-  } 
 
	- } 
 
	- $p = new My(); 
 
	- echo $p; 
 
	- ?> 
 
	 
 
2.对象方法的异常处理 
调用一些不存在的对象方法的异常处理,是程序正常运行。 
方法名:__call($funname,$arr_value) 
格式代码如下: 
	
	- class My { 
 
	- function __call($n,$v) { 
 
	- echo "错误的方法名:".$n; 
 
	- echo "错误的参数:".$v; 
 
	- } 
 
	- } 
 
	 
 
实例代码如下: 
	
	- <?php 
 
	- class My { 
 
	-  function __toString() { 
 
	-   return "这个类的作用是,保卫地球。"; 
 
	-  } 
 
	-  function __call ($n,$v) { 
 
	-   echo "错误的方法<b>".$n."</b><br />"; 
 
	-     echo "错误的值<b>".print_r($v)."</b>";  
 
	-  } 
 
	- } 
 
	- $p = new My(); 
 
	- $p->demo("第一",6); 
 
	- ?> 
 
	 
 
3.对象的克隆 
通过克隆方式可以在内存中生成两个一样的对象或升级原对象。(不是简单的赋值,而是在内存中开两块内存,克隆出的和被克隆的是2个属性方法一样的不同的两个对象) 
方法名:__clone() 
关键字:clone 
格式代码如下: 
	
	- class My { 
 
	- function __clone() { 
 
	- echo "克隆时自动调用的函数"; 
 
	- } 
 
	- } 
 
	- $a = new My(); 
 
	- $b = clone $a; 
 
	 
 
实例代码如下: 
	
	- <?php 
 
	- class My { 
 
	-  public $name = "小猪"; 
 
	-  function __toString() { 
 
	-   return "这个类的作用是,保卫地球。"; 
 
	-  } 
 
	-  function __call ($n,$v) { 
 
	-   echo "错误的方法<b>".$n."</b><br />"; 
 
	-     echo "错误的值<b>".print_r($v)."</b>";  
 
	-  } 
 
	- } 
 
	- $p = new My(); 
 
	- $b = clone $p; 
 
	- echo $b->name="小猪头"."<br />";  
 
	- echo $p->name;  
 
	- ?> 
 
	 
 
4.自动载入对象的方法 
快速取得对象名称并自动载入进当前页面 
方法名:__autoload() 
格式代码如下: 
	
	- function __autoload($class_n) { 
 
	- include($class_n.".php"); 
 
	- } 
 
	- $p = new MyPc();  
 
	- $d = new demo();  
 
	 
 
实例代码如下: 
	
	- <?php 
 
	- function __aotoload ($class_name) { 
 
	-  include($class_name.".php");  
 
	- } 
 
	- $p = new class_name();  
 
	- ?> 
 
	 
 
      
      (责任编辑:admin) |