Ошибка при использовании array_filter со статическими функциями в классе - PullRequest
0 голосов
/ 24 июня 2010

У меня есть класс

, как это

class im_a_class
{

 static function not_empty() {...}

 function render() { return array_filter($array,'self::not_empty') };
}

этот код работает в php 5.3.0, но не работает в версии 5.2.8.

iЯ должен был потушить его и использовать вот так

function not_empty() {...}

class im_a_class
{

 function render() { return array_filter($array,'not_empty'); }

}

так оно и работает, но ...

я хочу знать, какие у меня есть варианты.

пожалуйстапомогите спасибо.

Ответы [ 2 ]

6 голосов
/ 25 июня 2010

Вы можете сделать это так:

return array_filter($array, array(__CLASS__, 'not_empty'));
1 голос
/ 25 июня 2010

Я удивлен, что 5.3.0 позволяет это. self:: ничего не значит для array_filter, так как array_filter не является частью вашего класса.

Вы должны получить доступ к функции, используя im_a_class::not_empty (это полное имя функции)

...