使用PHP对象访问静态属性
这是关于,我是一个新手,有以下代码:使用PHP对象访问静态属性,php,static,Php,Static,这是关于,我是一个新手,有以下代码: 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 静
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
静态变量/属性仅被访问为<强> CordNo::StasyIGLUTHORION/START>,如在C++中,但PHP中不是这样的…但是PHP书籍大多提到className::static_属性模式,而不是object::static_属性构造。需要更多的说明。
$instance::$staticProperty
只是类::$staticProperty
的简写。因为您已经有了一个类的实例,并且语法是明确的,所以PHP可以避免编写可能很长的类名。没有功能上的区别。可以通过各种方式访问静态属性
Class::$aStaticProp; //by class name
$classname::$aStaticProp; // As of PHP 5.3.0 by object instance
无法使用箭头操作符->
通过对象访问静态属性
从PHP5.3.0开始,可以使用变量引用该类。变量的值不能是关键字(例如self、parent和static)
您可以在类中阅读更多内容,如self:$staticPropery
如果访问变量的函数也是静态的。此外,您可以在类内部使用
self:$my\u static
或static::$my\u static
(参见static::
用法(自PHP 5.3起)检查此链接可能会有所帮助…我确实有一个后续烦恼,因为我有点不相信这是有效的:$instance::$staticProperty
对我来说没有意义。静态属性属于类,而不是对象。为什么解释器为了“方便”而允许滑动此属性?有时,当您在字符串中保留类名时您正在对它们进行动态操作,这非常有用。@Robert我想这对我来说应该是有意义的,因为PHP不是最严格的语言,但是您可以简单地使用get_class()
来获取对象的类名。@BLaZuRE$foo::$bar
→ “获取类的静态属性$bar
,$foo
是的一个实例。”这只是语法上的甜点,对我来说非常方便。:-3