如何將陣列轉換為獨立的函數參數?
P粉391677921
P粉391677921 2023-07-22 23:17:01
0
2
525

我想在函數呼叫中將數組中的值作為獨立的參數使用。範例:

// 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}"; }

數組中的值的數量是未知的。

可能的解決方案有:

  1. 我可以將陣列作為單一參數傳遞,但更希望將其作為多個獨立的函數參數傳遞。

  2. 將陣列使用implode()函數連接成逗號分隔的字串。 (失敗,因為它只是一個字串。)

  3. 使用單一參數:

    $str = "'a','b'";
    function goat($str);  // $str needs to be parsed as two independent values/variables.
  4. 用 eval()?

  5. 遍歷陣列?

  6. #

歡迎提出建議。謝謝。

P粉391677921
P粉391677921

全部回覆(2)
P粉071602406

如果我理解你的意思正確的話:

$arr = array("alpha", "beta");
call_user_func_array('my_func', $arr);
P粉063039990

這個問題相當古老,但在PHP 5.6 版本中有更直接的支援。

http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list.new

#
$arr = array("alpha", "beta");
my_func(...$arr);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板