嘿 php 大师。我遇到了一些奇怪的类范围问题,这些问题显然与 php 中的一些怪癖有关。谁能告诉我什么异常情况可能会出现以下错误...
致命错误:无法访问 self:: 当第 5 行的 MyClass.php 中没有活动的类范围时
现在,显然如果我在课堂之外使用 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!
还有其他情况吗?