2010-07-22 75 views
0

下面是一個示例類:如何在課堂上使用php函數「array_diff_uassoc」?


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){ 
    } 
} 

我怎麼能說callback_function_for_array_diff作爲array_diff_uassoc回調函數?

回答

2

不同類型指定一個回調這裏描述的:

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

當你沒有一個靜態函數,你需要該類的一個實例,即$ this

所以,你可以指定回調爲array($this, callback_function_for_array_diff)

或者你做一個

static function callback_function_for_array_diff($a,$b){ 

那麼這將是​​3210或array("A","callback_function_for_array_diff")

0

使用

array("class_name","func name") 

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

其實,這將是'陣列($此,「FUNC名稱'),因爲他沒有調用靜態方法。 – 2010-07-22 06:53:57

+0

你對我在我的方式來重寫我的答案,並說我通常將此函數定義爲靜態函數 – 2010-07-22 06:57:02