我想在函數呼叫中將數組中的值作為獨立的參數使用。範例:
// Values "a" and "b" $arr = array("alpha", "beta"); // ... are to be inserted as $a and $b. my_func($a, $b) function my_func($a,$b=NULL) { echo "{$a} - {$b}"; }
數組中的值的數量是未知的。
可能的解決方案有:
我可以將陣列作為單一參數傳遞,但更希望將其作為多個獨立的函數參數傳遞。
將陣列使用implode()函數連接成逗號分隔的字串。 (失敗,因為它只是一個字串。)
使用單一參數:
$str = "'a','b'"; function goat($str); // $str needs to be parsed as two independent values/variables.
用 eval()
?
遍歷陣列?
歡迎提出建議。謝謝。
P粉0716024062023-07-23 22:33:24
如果我理解你的意思正確的話:
$arr = array("alpha", "beta"); call_user_func_array('my_func', $arr);
P粉0630399902023-07-23 16:28:10
這個問題相當古老,但在PHP 5.6 版本中有更直接的支援。
http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list.new
#$arr = array("alpha", "beta"); my_func(...$arr);