2016-01-26 6 views
5

Я хочу использовать array_map со статическим методом, но я терплю неудачу. Вот мой код:php 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?, но этот вопрос касается стандартных методов, а не статики.

+1

Попробуйте это: - array_map (массив (новый купить, «платить») , $ bill_list); –

+0

Проверьте порядок параметров [из всех маловероятных мест. РУКОВОДСТВО] (http://php.net/manual/en/function.array-map.php) – RiggsFolly

+0

Спасибо Рави Хирани, потому что ваше решение работает тоже. – jedema

ответ

14

Согласно documentation,

return array_map('self::pay', $model_list); 

Обратите внимание, что ваша попытка включена () в имени метода строку, которая будет неправильно