Подтвердить что ты не робот

Закрытие PHP как необязательный аргумент функции

Можно ли указать значение аргумента по умолчанию, когда аргумент является закрытием 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
}

( ПРИМЕЧАНИЕ: Я не тестировал приведенный выше код)

4b9b3361

Ответ 1

Аргументы по умолчанию могут быть только "скалярными аргументами", массивами или NULL.

"скалярные значения" в PHP - это числа, строки и логические значения.

Если вы хотите, чтобы функция была аргументом по умолчанию, вам нужно будет использовать второй способ, первый - синтаксическая ошибка.