好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php类的魔术方法 - php面向对象

php类的魔术方法

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

1、构造函数__construct

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

2、析构函数__destruct

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

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

<?php  class  Session  {       public    function  __construct()  {        echo   '构造函数执行' ;      }       public    function  __destruct()      {         echo   '析构函数执行' ;      }  } //开源代码phpfensi测试数据   $Obj  =  new  Session;  unset( $Obj ); //删除对象, __destruct()会被调用的   //输出   //构造函数执行   /析构函数执行  ?> 

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

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

<?php  class  Session  {    public   $age  = 20;    public   $sub  = null;    public   function  __clone()   {     $this ->sub=clone  $this ->sub;   }  }  class  Session 2  {    public   $value =5;  }  $s    =  new  Session;  $s ->sub= new  Session 2;  $s2  = clone  $s ;  $s ->sub-> $value  =10;  echo   $s2 ->sub-> $value ;  ?> 

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

<?php  class  Session  {    protected   function  __call( $func , $para )   {     echo   '方法不存在:’func." ".' 参数为:'. " " ;    print_r( $para );   }  }  $s = new  Session ();  echo   $c ->getNames( 'hello' , 'you' );   /*   输出:   方法不存在:getNames   参数为:   Array   (       [0] => hello       [1] => you   )   */   ?> 

查看更多关于php类的魔术方法 - php面向对象的详细内容...

  阅读:47次