在php 5中,提供了构造函数,析构函数,对象克隆的方法,重载方法等.
1、构造函数__construct
如果在类申明中__construct函数,将被当成一个构造函数并且在对象建立时被执行,但在php4中,构造函数的名称与类名相同就是构造函数哦,这一点有一些不同。
2、析构函数__destruct
如果在php类中申明了,在对象被销毁时调用__destruct函数
下面来看个实例,代码如下:
- <?php
 - class Session
 - {
 - public function __construct()
 - {
 - echo '构造函数执行';
 - }
 - public function __destruct()
 - {
 - echo '析构函数执行';
 - }
 - }//开源代码Vevb.com
 - $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
 - )
 - */
 - ?>
 
新闻热点
疑难解答