【发布时间】:2011-10-12 03:48:02
【问题描述】:
我有两节课。一个孩子和一个家长。父级从子级调用静态方法(这是子类中被覆盖的静态父级方法),我收到一般服务器错误。 当我删除关系(“扩展”部分)时,一切都很好并且没有错误。不知道为什么。你不能覆盖静态方法吗?寻找答案,但似乎找不到。
Class Fase {
public static function getbyId($id) {
//some stuff
}
public function getsomefaseitem($fase_item_id) {
FaseItem::getbyid($fase_item_id);
}
}
Class FaseItem extends Fase {
public static function getbyId($id) {
}
}
【问题讨论】:
-
据我了解 OOP,父类不应该调用它们的子类...
-
“一般服务器错误”没有用。查看错误日志并提供一些实际细节。
-
我收到以下错误:HTTP 错误 500(内部服务器错误):服务器尝试完成请求时遇到了意外情况。
-
@Martijn:这只是您的浏览器抛出的无用通知。进入您的服务器错误日志以找出 实际 PHP 错误。
-
@Tomalak Geret'Kal 。谢谢,我现在明白了。我查看了 php 错误日志,错误是由在 FaseItem 中设置 'private' __construct() 引起的。
标签: php inheritance visibility