这是参考Get a static property of an instance,我是新手并且有以下代码:
class Foo
{
public static $my_static = 1;
}
class Bar extends Foo
{
}
$foo = new Foo();
$boo = new Bar();
echo Foo::$my_static; // ok
echo Bar::$my_static; // ok
echo $foo::$my_static; // ok
echo $boo::$my_static; // ok
静态变量/属性仅在C ++中以 ClassName :: static_property 的形式访问,但在PHP中并非如此......但PHP书籍大多提及 className :: static_property 模式,而不是 object :: static_property 构造。需要更多关于这个......
答案 0 :(得分:21)
可以通过各种方式访问静态属性。
Class::$aStaticProp; //by class name
$classname::$aStaticProp; // As of PHP 5.3.0 by object instance
无法使用箭头操作符->
通过对象访问静态属性。
从PHP 5.3.0开始,可以使用变量引用该类。变量的值不能是关键字(例如self,parent和static)。
您可以在manual
中阅读更多内容答案 1 :(得分:10)
$instance::$staticProperty
只是Class::$staticProperty
的便捷速记。由于您已经拥有类的实例并且语法明确无误,因此PHP可以避免编写可能的长类名。没有功能差异。
答案 2 :(得分:0)
你必须使用的类,如self :: $ staticPropery 如果访问变量的函数也是静态的。