假设我有一个像这样的 PHP 数组。
array(2) { ["page"]=> string(1) "a" ["subpage"]=> string(4) "gaga" }
我想将此数组的内容传递给函数调用,如下所示:
function doStuff($page, $subpage) {
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我如何将该数组解构为单个对象以传递给函数?函数的变量的顺序始终与数组中相应键的顺序相同。
您可以使用array_values从数组中获取值,然后call_user_func_array使用值数组作为参数来调用函数。
<?php
$input = array( 'page' => 'a', 'subpage' => 'gaga' );
$values = array_values($input);
$result = call_user_func_array('doStuff', $values);
Run Code Online (Sandbox Code Playgroud)
或者,在较新版本的 PHP (>=5.6.x) 中,您可以使用运算符解包参数...:
<?php
$input = array( 'page' => 'a', 'subpage' => 'gaga' );
$values = array_values($input);
$result = doStuff(...$values);
Run Code Online (Sandbox Code Playgroud)