Intereting Posts

Закрытие 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 } 

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

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

«Скалярные значения» в PHP – это числа, строки и логические значения.

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