在类中使用PHP属性重载($this)

在类中使用PHP属性重载($this),php,Php,我试图从类的方法中触发get。见下文。我想如果我试图通过$this->user获取属性,那么将触发\uuu get。但是,似乎不是。这在PHP中可能吗?或者它是否只适用于外部进程(例如,$test->触发它的用户) 在类内部,$user可见,因此无需调用\u get\uuuu get仅在无法解析属性的情况下被调用,就像类外部的情况一样(如果将其更改为public而不是protected,则也不会从类外部调用\uu get) 如果您想在这种情况下强制调用\uuu get,则必须像$this->\u

我试图从类的方法中触发get。见下文。我想如果我试图通过$this->user获取属性,那么将触发\uuu get。但是,似乎不是。这在PHP中可能吗?或者它是否只适用于外部进程(例如,$test->触发它的用户)


在类内部,
$user
可见,因此无需调用
\u get
<代码>\uuuu get
仅在无法解析属性的情况下被调用,就像类外部的情况一样(如果将其更改为public而不是protected,则也不会从类外部调用
\uu get

如果您想在这种情况下强制调用
\uuu get
,则必须像
$this->\uu get('user')
那样显式调用它

<?php

class Test
{
    protected $user = 'Mario';

    public function __get($name)
    {
        echo "Getting '$name'\n";
    }

    public function doSomething()
    {
        $user = $this->user; // doesn't trigger __get
        //...
    }
}

$test = new Test;
$test->doSomething();
//echo $test->user; // this does trigger __get