【发布时间】:2016-05-02 19:33:16
【问题描述】:
我想将 array_map 与静态方法一起使用,但我失败了。 这是我的代码:
Class Buy {
public function payAllBills() {
$bill_list = OtherClass::getBillList();
return array_map(array(self, 'pay'), $bill_list); // Issue line
}
private static function pay($bill) {
// Some stuff
return true;
}
}
PHP 给了我错误:
Use of undefined constant self - assumed 'self'
我也试过了:
return array_map('self::makeBean()', $model_list);
但它不起作用。
你知道如何通过静态方法使用 array_map 吗?
我已经阅读:Can a method be used as a array_map function in PHP 5.2? 但这个问题是关于标准方法,而不是静态方法。
【问题讨论】:
-
试试这个:- array_map(array(new Buy, 'pay'), $bill_list);
-
感谢 Ravi Hirani,因为您的解决方案也有效。
-
PHP5.2 哇,我想所有这些新版本(5.3、5.4、5.5、5.6)可能都有错误
-
别担心,我用的是5.6,但我只发现了这个关于array_map和方法的问题:)