• 不确


    __isset();  未定义   的   属性调用 isset 时,调用。

    __unset(); 未定义   的   属性调用unset 时,调用。

    __get();   调用一个类内 未定义 属性时,调用。

    __set();      给一个类内 未定义  属性赋值时,调用。

    class C{

    function __set($p, $p1){
    var_dump(__METHOD__);
    }

    function __get($p){
    var_dump(__METHOD__);
    }

    function __isset($p){
    var_dump(__METHOD__);
    }

    function __unset($p){
    var_dump(__METHOD__);
    }
    }


    $c = new C;
    var_dump(isset($c->a));
    unset($c->a);
    var_dump($c->a);
    $c->a = 1;

    =======================>

    string(10) "C::__isset"
    bool(false)
    string(10) "C::__unset"
    string(8) "C::__get"
    NULL
    string(8) "C::__set"

    __invoke();   __debugInfo

    class CallableClass
    {
      function __invoke($x) {
        $x();
      }

      function __debugInfo(){

        return ['property' => 1];

          }
    }


    $obj = new CallableClass;
    $obj(function(){var_dump(1);});//int(1)
    var_dump(is_callable($obj));//bool(true)

    var_dump($obj);//带着参数的对象。

    __set_state();     当调用 var_export() 导出类时,此静态 方法会被调用。

    <?php

    class A
    {
        public $var1;
        public $var2;

        public static function __set_state($an_array) // As of PHP 5.1.0
        {
            $obj = new A;
            $obj->var1 = $an_array['var1'];
            $obj->var2 = $an_array['var2'];
            return $obj;
        }
    }

    $a = new A;
    $a->var1 = 5;
    $a->var2 = 'foo';

    eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                                //    'var1' => 5,
                                                //    'var2' => 'foo',
                                                // ));
    var_dump($b);

    ?>

  • 相关阅读:
    Java+Selenium元素定位的练习(三)
    Java+Selenium元素定位的八种方法(二)
    Java Selenium3 WebDriver启动火狐、Chrome、IE,Edge浏览器的方法(一)
    iOS userAgent
    如何强制视频横竖屏
    一些在开发中不曾注意的小知识,只是怕以后忘了,有迹可查
    多线程与并发
    谈谈那些年要把你弄疯的 bug
    底部导航上拉出现,下拉消失
    新闻详情页顶部的下拉放大与上拉的层叠效果
  • 原文地址:https://www.cnblogs.com/zhco/p/9568061.html
Copyright © 2020-2023  润新知