使用PHP对象访问静态属性


Access Static properties using PHP object

这是参考获取一个实例的静态属性,我是一个新手,有以下代码:

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::$staticPropertyClass::$staticProperty的简写。由于已经有了一个的实例,而且语法明确,PHP可以避免编写可能很长的类名。功能上没有差别

必须在类中使用self::$ staticproperty如果访问变量的函数也是静态的