0

クラスで定義された単純な __callStatic マジック メソッドがあります。

public static function __callStatic($method, $args) {
    if(substr($method, 0, 8) == "require_") {
          // do stuff
    }
}

スクリプトを実行すると、「Undefined method MyClass::require_foo」という致命的なエラーが発生して終了します。

しかし..

たとえば、ファイルを何らかの方法で変更した場合:

public static function __callStatic($method, $args) {
    if(substr($method, 0, 8) == "require_") {
          // HELLO
    }
}

その後、次のページの読み込みで機能します。ファイルに別の変更を加えるまで、後続のページの読み込みは失敗します。

これは不気味ですよね?しかし、毎回 100% 再現可能です。

4

1 に答える 1

0

この問題は、サーバー上の opcode キャッシングに関連していました。eAccelerator には __callStatic() に関する既知の問題があります。https://eaccelerator.net/ticket/382

于 2012-06-28T17:56:08.517 に答える