zoukankan      html  css  js  c++  java
  • 不确

    __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);

    ?>

  • 相关阅读:
    [HDU3487]Play with Chain
    [HDU3436]Queue-jumpers
    [HDU2475]Box
    [HDU1890]RoboticSort
    [BZOJ1500]维修数列
    [POJ3580]SuperMemo
    [POJ3481]Double Queue
    [BZOJ1269]文本编辑器editor
    简单的sql注入
    图片马的制作以及菜刀的使用
  • 原文地址:https://www.cnblogs.com/zhco/p/9568061.html
Copyright © 2011-2022 走看看