繁体   English   中英

PHP ::如何从扩展类调用静态方法(或属性)?

[英]PHP:: How to call static method (or property) from extended class?

我有Model类和Model_Something类。 Model_Something具有静态属性(表名)。

我想从Model类访问Model_Something静态属性。 但它试图在Model类中找到它并给我异常:

ErrorException [ Fatal Error ]: 
Access to undeclared static property: Model::$_collection_name

我尝试以这种方式访问​​它:

self::$some_property;

怎么弄?

您不应该访问不存在的类中的属性,并且该属性取决于它在子级中的存在。 父母不能/不应该知道孩子做了什么,它需要反过来。 首先,在父级中声明属性,因此父级可以在任何情况下访问它。 然后,孩子可以覆盖财产的价值。 为了确保你总是访问正在执行的类的属性,你需要使用static而不是self来获得后期静态绑定

static::$some_property; 

http://php.net/manual/en/language.oop5.late-static-bindings.php

父:: $ some_property; 它会使你的代码变得不那么可靠,就像你改变你的类名一样,如果你使用类名,你也必须在这里更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM