Анонимная функция PHP как аргумент по умолчанию?

Есть ли способ сделать это в php?

//in a class public static function myFunc($x = function($arg) { return 42+$arg; }) { return $x(8); //return 50 if default func is passed in } 

PHP По умолчанию аргументы функции могут иметь только скалярные или массивные типы:

Значение по умолчанию должно быть константным выражением, а не (например) переменной, членом класса или вызовом функции.

From: PHP Manual / Function Arguments / значения аргумента по умолчанию

Как насчет:

 public static function myFunc($x = null) { if (null === $x) { $x = function($arg) { return 42 + $arg; }; } return $x(8); //return 50 if default func is passed in } 

Вы можете использовать func_num_args и func_get_arg

 //in a class public static function myFunc() { if (func_num_args() >= 1) { $x = func_get_arg(0); } else { $x = function($arg) { return 42+$arg; } } return $x(8); //return 50 if default func is passed in } 

Но я согласен с tradyblix, что вы можете просто обрабатывать данные, как в

 //in a class public static function myFunc() { if (func_num_args() >= 1) { $x = func_get_arg(0); $retval = $x(8); } else { $retval = 42 + 8; } return $retval; //return 50 if default func is passed in }