PHP closure as an optional function argument

closures, php

Solution

Default arguments can only be "scalar arguments", arrays, or NULL.

"scalar values" in PHP are numbers, strings, and booleans.

If you want a function to be a default argument, you're gonna need to use the 2nd way, the 1st is a syntax error.

Problem

Would be possible to specify a default argument value when argument is a PHP closure? Like: ``` public function getCollection($filter = function($e) { return $e; }) { // Stuff } ``` Am i missing something (maybe a different syntax?) or it's not possible at all? Of course i know i can do: ``` public function getCollection($filter = null) { $filter = is_callable($filter) ? $filter : function($e) { return $e; }; // Stuff } ``` (NOTE: I didn't test the above code)

Original source