我一直在掙扎了幾天,現在有一個完全怪異的錯誤: 這裏的情景(多多包涵):未定義類常量「自我:: STRING」
我有一個「框架」類,我會打電話給F. 我有一些簡單的類,延長女,他們中的一個,我會打電話P.
所以我有什麼是:
class F {
[...]
protected static $_tabela;
[...]
final public static function _Tabela() {
return static::$_tabela;
}
public static function Consultar() {
echo static::_Tabela();
}
}
class P extends F {
protected static $_tabela = 'produtos';
}
當我打電話P::Consultar();
我得到這個錯誤對我來說毫無意義:
Fatal error: Undefined class constant 'self::STRING' in [...]/F.inc.php on line X
其中,X爲_Tabela()方法的主體。
所以,我試着改變變量名稱($ _tabela)。 我試圖通過節約的get_called_class類名():
$class = get_called_class()
return $class::$_tabela;
但得到了同樣的錯誤。此外,錯誤消息是完全無用的,我不是試圖訪問一個類常量,而是一個類的靜態屬性!
使用谷歌搜索錯誤消息也沒有給我有用的結果。
編輯:謝謝大家的答案! 我發現了這個問題,它與我所看到的代碼無關。 原來在P類的定義中有一個錯誤,所以當我嘗試調用static :: Consultar時,PHP解析了類並抱怨錯誤!
一些代碼,如果您看到這個錯誤將是有益的 –
當問錯誤,你應該始終包括完整的錯誤消息和違規行以及它上面的行。 –
你的代碼沒有任何意義,你可以發佈重要的部分原始代碼嗎? – dbf