首页 > php面向对象 > php类的魔术方法

php类的魔术方法

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

1、构造函数__construct

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

2、析构函数__destruct

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

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

<?php
class Session {
    public function __construct() {
        echo '构造函数执行';
    }
    public function __destruct() {
        echo '析构函数执行';
    }
}
$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 Session2 {
    public $value = 5;
}
$s = new Session;
$s->sub = new Session2;
$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 
	) 
*/
?>

       
               
               

文章链接:http://www.phprm.com/mxdx/fs4373.html

随便收藏,请保留本文地址!

标签:php类 魔术方法

相关文章

发表留言