PHP编程:php常见的魔术方法详解
《php常见的魔术方法详解》要点: php规定以两个下划线(__)开头的办法都保留为魔术办法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术办法.?PHP编程 PHP中的魔术办法有 :__construct,__destruct,__call,__callStatic,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state,__clone,__autoload?PHP编程 1、__get、__set?PHP编程 这两个方法是为在类和他们的父类中没有声明的属性而设计的? 2、__isset、__unset?PHP编程 __isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法? 3、__call?PHP编程 __call( $method,$arg_array ) 当调用一个未定义的方法是调用此方法?
代码如下:
<?php??? class Loader??? {??? static function autoload_class($class_name)??? {??? //寻找正确的$class_name类,并引入,没有则抛出异常??? }??? }??? /** *?? 设置对象的自动载入 *?? spl_autoload_register ― Register given function as __autoload() implementation */??? spl_autoload_register(array('Loader','autoload_class'));??? $a = new Test();//Test没用require就实例化,实现自动加载,很多框架就用这种办法自动加载类??? ?> 注意: 在 __autoload 函数中抛出的异常不能被 catch 语句块捕获并导致致命错误,所以应该在函数本身做捕获.?PHP编程 5、__construct、__destruct?PHP编程 __construct 构造办法,当一个对象创建时调用此办法,相对于PHP4使用此办法的好处是:可以使构造办法有一个独一无二的名称,无论它所在的类的名称是什么.这样你在改变类的名称时,就不需要改变构造办法的名称? 6、__clone?PHP编程 PHP5中的对象赋值是使用的引用赋值,如果想复制一个对象则需要使用clone办法,在调用此办法是对象会自动调用__clone魔术办法,如果在对象复制需要执行某些初始化操作,可以在__clone办法实现.?PHP编程 7、__toString?PHP编程 __toString办法在将一个对象转化成字符串时自动调用,比如使用echo打印对象时.? 8、__sleep、__wakeup?PHP编程 __sleep 串行化的时候用? 9、__set_state?PHP编程 当调用var_export()时,这个静态 办法会被调用(自PHP 5.1.0起有效).? 10、__invoke?PHP编程 当尝试以调用函数的方式调用一个对象时,__invoke 办法会被自动调用.? 11、__callStatic?PHP编程 它的工作方式类似于 __call() 魔术办法,__callStatic() 是为了处理静态办法调用,? 编程之家培训学院每天发布《php常见的魔术方法详解》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |