Magic methods __get and __set - example from ZCE

前端 未结 1 1333
灰色年华
灰色年华 2021-01-23 12:01
class Magic {
    public $a = \"A\";
    protected $b = array(\"a\" => \"A\", \"b\" => \"B\", \"c\" => \"C\");
    protected $c = array(1,2,3);
    public function __get($v)          


        
相关标签:
1条回答
  • 2021-01-23 12:21

    then… what do you expect?

    It calls __get/__set if you don't have from your actual scope the rights to access the property / the property doesn't exist.

    So $m->a gets directly "A"; $m->b and $m->c call first __get("b") and __get("c") (return "B" and "C" after echoing "b, c, ")

    The same is for $m->c = "CC";: it calls __set("c", "CC") as $c is a protected (non-accessible) property. (sets $m->c to "CC" after echoing "c: CC")

    0 讨论(0)
提交回复
热议问题