根据php文档http://php.net/manual/en/language.oop5.constants.php
使用实例化的类对象无法访问声明为static的属性
但以下示例是否表明您可以从对象$foo
访问静态属性?
class Foo{
static $my_static = 'foo';
function staticValue(){
return self::$my_static;
}
}
$foo = new Foo();
echo $foo::$my_static;
答案 0 :(得分:5)
这里的诀窍是你使用scope resolution operator ::它总是引用这个类。如果你使用$ foo或$ this或self。无关紧要。
Self是PHP中引用当前级别的关键字,但::可以在对象上使用::来获取对该对象的类的引用。 self ::与parent ::属于同一个关键字系列,想想self ::想要访问某个对象的当前级别的东西,而parent ::想要访问某些东西< em>低于当前对象。
因此,要访问类中定义的内容。 PHP创建了::运算符。如果您只需要静态类中的某些东西,那么您可以在类中使用self或在其外部使用对象引用。