使用PHP对象访问静态属性

时间:2013-06-14 11:52:04

标签: php static

这是参考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 构造。需要更多关于这个......

3 个答案:

答案 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 如果访问变量的函数也是静态的。