[英]PHP Anonymous Function as Default Argument?
有沒有辦法在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默認函數參數只能是標量或數組類型:
默認值必須是常量表達式,而不是(例如)變量,類成員或函數調用。
怎么樣:
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.