当前位置:首页 > PHP教程 > php面向对象 > 列表

php类的魔术方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-18 08:38:10 浏览: 评论:0 

在php 5中,提供了构造函数,析构函数,对象克隆的方法,重载方法等.

1、构造函数__construct

如果在类申明中__construct函数,将被当成一个构造函数并且在对象建立时被执行,但在php4中,构造函数的名称与类名相同就是构造函数哦,这一点有一些不同。

2、析构函数__destruct

如果在php类中申明了,在对象被销毁时调用__destruct函数

下面来看个实例,代码如下:

  1. <?php 
  2. class Session 
  3.     public  function __construct() 
  4.      echo '构造函数执行'
  5.     } 
  6.     public  function __destruct() 
  7.     { 
  8.       echo '析构函数执行'
  9.     } 
  10. }//开源代码phpfensi.com 
  11. $Obj = new Session; 
  12. unset($Obj);//删除对象, __destruct()会被调用的 
  13. //输出 
  14. //构造函数执行 
  15. /析构函数执行 
  16. ?> 

上面在使用new创建对象时就执行了__construct,对象结束时就执行了__destruct()

3、__clone()克隆函数,代码如下:

  1. <?php 
  2. class Session 
  3.  public $age = 20; 
  4.  public $sub = null; 
  5.  public function __clone() 
  6.  { 
  7.   $this->sub=clone $this->sub; 
  8.  } 
  9. class Session 2 
  10.  public $value=5; 
  11. $s   = new Session; 
  12. $s->sub=new Session 2; 
  13. $s2 = clone $s
  14. $s->sub->$value =10; 
  15. echo $s2->sub->$value
  16. ?> 

4 现在来看关于重载函数__get ,__set,__call函数,代码如下:

  1. <?php 
  2. class Session 
  3.  protected function __call($func,$para
  4.  { 
  5.   echo '方法不存在:’func." ".'参数为:'." "
  6.   print_r($para); 
  7.  } 
  8. $s=new Session (); 
  9. echo $c->getNames('hello','you');  
  10. /* 
  11. 输出: 
  12. 方法不存在:getNames 
  13. 参数为: 
  14. Array 
  15. ( 
  16.     [0] => hello 
  17.     [1] => you 
  18. ) 
  19. */ 
  20. ?> 

Tags: php类 魔术方法

分享到: