这是参考获取一个实例的静态属性,我是一个新手,有以下代码:
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
静态变量/属性只能访问ClassName::static_property,就像在c++中一样,但在PHP中不是这样的…但是PHP书籍大多提到className::static_property模式,而不是object::static_property结构。
静态属性可以通过多种方式访问。
Class::$aStaticProp; //by class name
$classname::$aStaticProp; // As of PHP 5.3.0 by object instance
静态属性不能通过对象使用箭头操作符->
访问。
从PHP 5.3.0开始,可以使用变量引用类。变量的值不能是关键字(例如self, parent和static)。
更多内容请参阅手册
$instance::$staticProperty
是Class::$staticProperty
的简写。由于已经有了一个类的实例,而且语法明确,PHP可以避免编写可能很长的类名。功能上没有差别
必须在类中使用self::$ staticproperty如果访问变量的函数也是静态的