次の PHP クラスを検討します。
class someObject {
public function broken(){
return isset($this->something()) ? 'worked' : 'didnt';
}
public function something(){
return true;
}
public function notBroken(){
print('worked');
}
}
私が今やっているとしましょう:
$obj= new someObject();
$obj->broken();
関数呼び出しを isset() に渡すことができないことを考えると (これは参照渡しです)、これは致命的なエラーで失敗すると予想されます:PHP Fatal error: Can't use method return value in write context
これは問題なく、予期されたものです。
しかし、私が今やっているとしましょう:
$obj= new someObject();
$obj->notBroken();
broken()
この実行でどこにもヒットしていないこと、およびエラーbroken()
が致命的なエラー (解析エラーではない) であることを考えると、「機能した」という通常の出力は期待できません。間違い!それでも致命的なエラーが発生します。
質問:
エラーのあるコードを書いていないこと以外に、解析エラーではないが実行時エラーを引き起こすエラーは他にありますか? 私が知っているのは次のことだけです: PHP Fatal error: Can't use method return value in write context
. これらのエラーを検出する方法はありますか? このタイプのエラーに特別な名前はありますか?