Maison  >  Article  >  développement back-end  >  PHP 魔术方法 PHP 类中的魔术方法

PHP 魔术方法 PHP 类中的魔术方法

WBOY
WBOYoriginal
2016-07-28 08:25:33899parcourir

定义:

     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教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn