PHP __get和私有类变量

Ele*_*bra 9 php oop

假设有一个foo带有已__get()定义的抽象基类,以及一个bar继承自私foo有变量的子类,那么在尝试从类外部访问私有时是否会调用$var父类? __get()$var

Ele*_*bra 10

是.

<?php
    abstract class foo
    {
        public function __get($var)
        {
            echo "Parent (Foo) __get() called for $var\n";
        }
    }

   class bar extends foo
   {
        private $var;
        public function __construct()
        {
            $this->var = "25\n";
        }

        public function getVar()
        {
            return $this->var;
        }
    }

    $obj = new bar();
    echo $obj->var;
    echo $obj->getVar();
?>
Run Code Online (Sandbox Code Playgroud)

输出:

$ php test.php

父(Foo)__ get()调用var

25