私は今日、私たちのPHPコードのいくつかで非常に奇妙な動作に遭遇しました。私たちにはファイルを扱うクラスがあります。これは次のようなものです:未登録の予約語ですか?
これはかなり普通ですが、$ this-> upload()関数はNULL以外のものを返しませんでした。正しい機能が実行されていることを確認しました。それが返される前に戻り値が返されました。真の値か文字列だけを返してみました。すべてが正しかった。しかし$ this-> uploadはまだNULLに評価されます。また、ログには何もなく、ERROR_ALLがオンになっています。
exasperationでは、関数名をfoo_uploadに変更しました。突然すべてがうまくいった。 「アップロード」はPHP reserved wordsのリストにありません。誰でも "upload"という名前のクラス関数が失敗する理由を知りませんか?既存のメソッドを呼び出そうと(
if($a = $this->upload) { // => NULL
$this->update_db(); //never reached this line
}
var_dump($a);
これに代えて(OPから):あなたがこれを持っていた場合、アップロードは(inexistingプロパティにアクセスしようとしている)だろう「呼び出し」ときはnullを取得する
アップロード機能にエコーを入れましたか? –
どこかで上書きされていますか? – Greg
@Chacha:アップロード機能の中にエコーを入れました。それは期待値を与えた。 @Greg:AFileクラスには子がありません(まだ)ので、メソッドをオーバーライドしないでください。 – dnagirl