从类外部访问类属性

max*_*005 2 php oop

假设我有以下课程:

class MyClass {
    public function Talk() {
        $Say = "Something";
        return $Say;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我启动了该类的实例:

$Inst = new MyClass();
Run Code Online (Sandbox Code Playgroud)

我现在如何在MyClass之外调用$ Say,例如,在文档上回显它?例如,有类似的东西:

$Said = "He" . $Say
Run Code Online (Sandbox Code Playgroud)

sim*_*aun 7

我强烈建议你阅读http://php.net/manual/en/language.oop5.php.它将教你PHP中OOP的基础知识.


在您的示例中,$Say只是在Talk()范围内声明的另一个变量.它不是一个类属性.

要使它成为类属性:

class MyClass {
    public $say = 'Something';

    public function Talk() {
        return $this->say;
    }
}

$inst = new MyClass();
$said = 'He ' . $inst->say;
Run Code Online (Sandbox Code Playgroud)

但这违背了目的Talk().
最后一行应该是$said = 'He '. $inst->Talk();

  • 只是需要澄清一点:这将使 `$say` 成为一个 _object_ 属性。像 `static $say = 'Something';` 这样的声明将使它成为一个 _class_ 属性。 (2认同)