16

引数がPHPクロージャの場合、デフォルトの引数値を指定することは可能でしょうか?好き:

public function getCollection($filter = function($e) { return $e; })
{
    // Stuff
}

私は何かが足りないのですか(おそらく別の構文ですか?)、それともまったく不可能ですか?もちろん、私は私ができることを知っています:

public function getCollection($filter = null)
{
    $filter = is_callable($filter) ? $filter : function($e) { return $e; };
    // Stuff
}

注:上記のコードはテストしていません)

4

1 に答える 1

18

デフォルトの引数は、「スカラー引数」、配列、またはNULLのみです。

PHPの「スカラー値」は、数値、文字列、およびブール値です。

関数をデフォルトの引数にしたい場合は、2番目の方法を使用する必要があります。1番目は構文エラーです。

于 2012-05-14T15:55:00.440 に答える