php5中类的学习(3)


<?php     
$test3 = clone $test1;     
?>    



类的钩子:

__autoload:
是一个函数名,也是唯一一个在类的外部使用的钩子,在实例化一个对象的时候,如果没有预先载入类,就会调用这个钩子。

__construct
在类被实例话的时候,被调用的钩子,可以做一些初始化的操作。

__destruct
在类被销毁的时候,被调用的钩子。

__call
当对象试图调用一个不存在的方法的时候,被调用的钩子

__sleep
当使用serialize()函数对一个类进行序列话操作的时候,会调用这个钩子

__wakeup
当使用unserialize()函数对一个类进行反序列话操作的时候,会调用这个钩子

__toString
当一个对象将被转变为字符串的时候,会调用这个钩子(比如echo的时候)

__set_state
当调用var_export()函数操作一个类的时候,会调用这个钩子

__clone
当使用clone关键字对一个类进行拷贝操作的时候,会调用这个钩子

__get
在获取一个类中的属性值的时候,会调用这个钩子

__set
在设置一个类中的属性值的时候,会调用这个钩子

__isset
在使用isset()函数对类中的属性值进行判定的时候,会调用这个钩子

__unset
在使用unset()函数销毁一个属性值的时候,会调用这个钩子

类的小技巧:

在实例话一个类的时候,可以使用这样的形式给__construct钩子传递参数:

PHP代码 

复制代码 代码如下:


<?php     
class TEST     
{     
    public function __construct($para)     
    {     
        echo $para;     
    }     
}     

$test = new TEST('value'); // 显示 value     
?>   



foreach()函数可以用来对类或者对象中的属性进行遍历,遍历的时候会先判断public, protected, private的情况而显示:

PHP代码

复制代码 代码如下:


<?php     
class TEST     
{     
    public $property1 = 'value1';     
    public $property2 = 'value2';     
    public $property3 = 'value3';     

    public function name()     
    {     
        foreach($this as $key => $value)     
        {     
            print "$key => $value\n";     
        }     
    }     
}     

$test = new TEST;     
foreach($test as $key => $value)     
{     
    print "$key => $value\n";     
}     
$test->name();     
?>    


在给类中的方法传递参数的时候,可以对参数进行强制的判定,这里只支持对数组和对象的判定:

PHP代码

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7dc8ac374c17a88efbb90030bbe6bd03.html