zoukankan      html  css  js  c++  java
  • PHP魔术方法使用

    PHP魔术方法的使用

    1、__get()   和  __set();

    2、__call()   和  __callStatic();  

    3、__toString();

    4、__invoke();

    1、__get()   和  __set();

    一个php类文件为 object.php:

    Class Object {

      private $array = array();

      function __set($key , $value){

        var_dump(__METHOOD__);

        $this->array[$key] = $value;

      }

      function __get($key){

        var_dump(__METHOOD__);

        return $this->array[$key];

      }

      function __call($func,$param){

        var_dump($func,$param);

        return 'magic function';

      }

      static function __callStatic(){

        var_dump($func,$param);

        return 'magic static function';

      } 

    }

    当我们给一个没有的属性赋值时会自动调用__set();

    输出一个没有的属性的时候会自动调用__get();

    测试代码如下:

    $obj = new Object();

    $obj->title = 'zhangshan';

    echo $obj->title;

    会得到以下结果:

    2、__call()   和  __callStatic();  

    当我们访问一个不存的方法时会自动调用__call();

    echo $obj->test('Hello World',123);

    会得到以下结果:

    __callStatic()跟__call()大体相同只不过是针对static声明的方法

    echo $obj::test('Hello World',123);

    会得到以下结果:

  • 相关阅读:
    JQuery
    Ubuntu18.04
    Ubuntu18.04
    Ubuntu18.04
    Ubuntu18.04
    Cordova
    Android
    Android
    Delphi
    postgresql之 drop & delete & truncate
  • 原文地址:https://www.cnblogs.com/wenhainan/p/5337767.html
Copyright © 2011-2022 走看看