Heim  >  Artikel  >  Backend-Entwicklung  >  PHP 魔术方法 PHP 类中的魔术方法

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

WBOY
WBOYOriginal
2016-07-28 08:25:33894Durchsuche

定义:

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn