2012-01-08 10 views
1

私は最初のreturn文を作成することはできませんが、どのように動作するのか誰かが助けてくれますか? array_mapは最初のargの関数を受け入れますが、ここには配列があります。 array(&$this, '_trimData')はどのように機能しますか?説明してくれてありがとう。PHPはarray_mapの最初の引数として配列を使用します

private function _trimData($mParam) 
{  
    if (is_array($mParam)) 
    { 
     return array_map(array(&$this, '_trimData'), $mParam); 
    } 

    $mParam = trim($mParam); 

    return $mParam; 
}  

答えて

3

これは再帰関数です。 _trimDataは、渡されたパラメータが配列の場合は、自身を呼び出します。

array(&$this, '_trimData')は、現在のオブジェクトのメソッド_trimDataに対してcallbackです。

全体の方法は、実際に置き換えることができます。

private function _trimData($mParam) 
{ 
    array_walk_recursive($mParam, 'trim'); 
    return $mParam; 
} 
+0

は、それはあなたの機能を理解する方がはるかに簡単です,,,手に入れました。説明ありがとう。 – bingjie2680

1

それはコールバックです:$this->_trimData()(オブジェクト$this_trimData

関連する問題