10
Chcę filtrować tablicę, używając funkcji array_filter. Wskazuje na używanie call_user_func pod wodą, ale nie wspomina nic o tym, jak używać w kontekście klasy/obiektu.Array_filter w kontekście obiektu, z prywatnym oddzwonieniem
Niektóre pseudokod wyjaśnić mój cel:
class RelatedSearchBlock {
//...
private function get_filtered_docs() {
return array_filter($this->get_docs(), 'filter_item');
}
private filter_item() {
return ($doc->somevalue == 123)
}
}
Czy muszę zmienić 'filter_item'
do array($this, 'filter_item')
? Czy to w ogóle jest możliwe?
Świetne informacje! Jeśli używasz metod statycznych, musisz podać nazwę klasy za pomocą funkcji filtru. Aby to zrobić, możesz zamienić 'array ($ this, 'filter_item')' na 'array (__ CLASS__, 'filter_item')'. –
Czy metoda filter_item() zostanie wywołana na obiekcie wywołującym array_filter() lub na każdym obiekcie w $ this-> get_docs()? – Arild
@Arild Zasadniczo, '$ this-> filter_item ($ doc)' zostanie wywołane dla każdej pozycji zwróconej przez 'get_docs()'. – deceze