[英]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.