脚本宝典收集整理的这篇文章主要介绍了php没有在静态函数内重载,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP class A { PRivate $test = "TEST<br />"; public static function getInstance() { return new self(); } public static function someStaticMethod() { $a = new self(); $a->test; } public function __get($args) { echo $this->$args; } } /* echo's "TEST" */ $a = new A(); $a->test; /* echo's "TEST" */ $a2 = A::getInstance(); $a2->test; /* No output... eeerhm... how come? Why is $a->test (inside someStaticMethod()) not being overloaded by __get ?? */ A::someStaticMethod(); ?>
public static function __get(){}
事实上,我实际上是在对象上下文中使用它. $a = new self();返回变量$a中A类的实例.然后我使用$a-> test(对象上下文imo?)来获取私有的“test”变量,而该变量又应该被重载…
我很迷惑…
根据PHP Manual,这是预期的行为:
以上是脚本宝典为你收集整理的php没有在静态函数内重载全部内容,希望文章能够帮你解决php没有在静态函数内重载所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。