2010-07-22 7 views
0

Voici une classe exemple:Comment utiliser la fonction php "array_diff_uassoc" dans une classe?


class A{ 
    . 
    . 
    . 
    public function updateAction(){ 
     $tags=explode(' ',$taglist); 
     . 
     . 
     . 
     $tagsInDb=$tagsInDb->toArray(); 
     $dif=array_diff_uassoc($tags,$tagsInDb,"here the callback should be inserted"); 
    } 
    protected function callback_function_for_array_diff($a,$b){ 
    } 
} 

Comment puis-je appeler callback_function_for_array_diff en fonction de rappel pour array_diff_uassoc?

Répondre

2

Les différents types de spécification d'un rappel sont décrites ici:

http://www.php.net/manual/en/function.call-user-func.php

Comme vous ne disposez pas d'une fonction statique, vous besoin d'une instance de la classe, c'est-à-dire $ this

Vous pouvez spécifier le rappel comme array($this, callback_function_for_array_diff)

Ou vous faites une

static function callback_function_for_array_diff($a,$b){ 

Ensuite, il serait "A::callback_function_for_array_diff" ou array("A","callback_function_for_array_diff")

0

utilisation

array("class_name","func name") 

comme

$dif=array_diff_uassoc($tags,$tagsInDb,array($this,"callback_function_for_array_diff")); 
+2

En fait, ce serait tableau '($ this-, « func name ') 'parce qu'il n'appelle pas une méthode statique. –

+0

vous avez raison je dans ma manière de réécrire ma réponse et dire que d'habitude j'ai défini cette fonction comme fonction statique –

Questions connexes