1
我試圖在PHP 5.5中使用uksort
來按數組排序數組。這不起作用。要麼拋出一個異常,指定的類無效或沒有任何反應:uksort不起作用 - 回調未執行或異常
namespace some\name\space
class myClass extends someClass {
public function someFunction {
$theArray = array(
"key1" => "value1",
"key2" => "value2",
...
"keyN" => "valueN"
);
// Exception "Fatal Error: Class name must be a valid object or a string"
uksort($theArray, array($this, "sorterFunc"));
uksort($theArray, array("someClass", "sorterFunc"));
uksort($theArray, array("some\name\space\someClass", "sorterFunc"));
uksort($theArray, "self::sorterFunc");
uksort($theArray, "some\name\space\someClass::sorterFunc");
// No effect. No logging from sorterFunc and
// key/value order stays the same.
uksort($theArray, "sorterFunc");
uksort($theArray, "someClass::sorterFunc");
}
public static function sorterFunc($a, $b) {
myLogger->info("sorterFunc called");
return $this->CompareASomehowToB($a, $b);
}
}
所以我沒有在docu或以任何例如工作中發現的呼叫。當我跳過uksort
並使用call_user_func
時,結果完全相同。
那麼,這裏可能會出現什麼問題?
...'myClass' not'someClass' – cmorrissey