PHPの達人よ。私はいくつかの奇妙なクラス スコープの問題に遭遇しています。これは、明らかに php の癖に関係しています。通常とは異なる状況で次のエラーが発生する可能性があることを誰か教えてもらえますか...
致命的なエラー: 5 行目の MyClass.php でアクティブなクラス スコープがない場合、self:: にアクセスできません
さて、明らかに、クラスの外で self:: を使用すると、エラーが発生します...しかし、そうではありません。これが状況の単純化されたバージョンです...
//file1
class MyClass{
public static function search($args=array()){
$results = MyDbObject::getQueryResults("some query");
$ordered_results = self::stack($results); //Error occurs here
return $ordered_results;
}
public static function stack($args){
//Sort the results
return $ordered_results;
}
}
//file 2
include_once("MyClass.php");
$args = array('search_term'=>"Jimmy Hoffa");
$results = MyClass::search($args);
このセットアップを考えると、どうすれば上記のエラーを取得できますか? これが私がこれまでに見つけたものです...
MyClass::search($args) //does not give the error (usually)
call_user_func("MyClass::search"); // this gives the error!
他の状況はありますか?