10
Diziyi, array_filter işlevini kullanarak filtrelemek istiyorum. Su altında call_user_func kullanarak ipuçları, ancak bir sınıf/nesne bağlamında nasıl kullanılacağı hakkında bir şey bahsetmez.Array_filter, bir nesne bağlamında, özel geri bildirime sahip
Bazı yalancı kod amacıma açıklamaya:
class RelatedSearchBlock {
//...
private function get_filtered_docs() {
return array_filter($this->get_docs(), 'filter_item');
}
private filter_item() {
return ($doc->somevalue == 123)
}
}
ben array($this, 'filter_item')
içine 'filter_item'
değiştirmek gerekir? İstediğim şey mümkün mü?
Harika bilgi! Statik yöntemler kullanıyorsanız, filtre fonksiyonu ile sınıf ismini geçmeniz gerekecektir. Bunu yapmak için diziyi ($ this, 'filter_item') 'dizisi ile değiştirebilirsiniz (__ CLASS__, 'filter_item')'. –
filter_item() yöntemi, array_filter() işlevini çağıran nesnede mi, yoksa $ this-> get_docs()? – Arild
@Arild Esasen, '$ this-> filter_item ($ doc)', get_docs() 'dan döndürülen her öğe için çağrılır. – deceze