PHP 魔术方法 PHP 类中的魔术方法
PHP类中以两个下画线“__”开头的方法被称为魔术方法。
分类:
例如:构造方法:__construct;析构方法:__destruct;动态重载:__set()、__get()、__call()、__callStatic();对象的克隆:__clone()
应用场景:
1、当程序试图修改一个不存在或不可见的类属性时,PHP引擎将会调用__set()方法,当然前提是该方法在类中被定义。__set()的定义格式如下:
function __set($name,$value){
//实现细节
}
其中,$name是动态创建的变量名,$value是该变量的值。
2、当程序试图读取一个不存在或不可见的类属性时,PHP引擎将会调用__get()方法,当然前提是该方法在类中被定义。__get()的定义格式如下:
function __get($name){
//实现细节
}
其中,$name是动态创建的变量名。
3、当程序试图调用一个不存在或不可见的类方法时,PHP引擎将会调用__call()方法,当然前提是该方法在类中被定义。__call()方法的定义格式如下:
function __call($name,$args){
//实现细节
}
其中,$name是动态创建的方法名,$args是该方法的参数,以数组的形式存在。
4、从PHP5.3.0开始,可以使用__callStatic()动态创建静态方法。__callStatic()的定义格式如下:
function __callStatic($name,$args){
//实现细节
}
其中,$name是动态创建的方法名,$args是该方法的参数,以数组的形式存在。
5、__clone()方法一旦被定义,类在被复制时就会自动调用它,这样我们就可以在__clone()方法中给引用属性重新开辟内存。__clone()定义格式如下:
function __clone(){
//实现细节
}
以上就介绍了PHP 魔术方法 PHP 类中的魔术方法,包括了PHP 魔术方法方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
推荐阅读
-
突破php上传文件大小限制的配置方法
-
IDEA中如何自定义类的注释和方法的注释
-
PHP使用mysql_fetch_row查询获得数据行列表的方法,phpmysql_fetch_row_PHP教程
-
ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创,thinkphprun_PHP教程
-
CentOS下php使用127.0.0.1不能连接mysql的解决方法_MySQL
-
关于session不能自动去除的临时处理方法(转载)我一直没用SESSI_PHP
-
Codeigniter检测表单post数据的方法_php实例
-
php通过array_merge()函数合并两个数组的方法,array_merge数组_PHP教程
-
php mcrypt启用、加密以及解密的方法介绍
-
Ubuntu+Nginx+PHP的最简筹建方法