doujia7779 2018-08-14 18:45
浏览 150
已采纳

PHP可以轻松地将数组结构化为单个变量以传递给函数

Say I have a PHP array like this.

array(2) { ["page"]=> string(1) "a" ["subpage"]=> string(4) "gaga" }

I want to pass the contents of this array to a function call, of a function like this:

function doStuff($page, $subpage) {
 // Do stuff
}

How could I destructure this array into individual objects to pass to the function? The variables of the function will always be in the same order that the corresponding keys are in the array.

  • 写回答

3条回答 默认 最新

  • dongya6997 2018-08-14 18:48
    关注

    You can use array_values to get the values out of the array and then call_user_func_array to call your function using an array of values as an argument.

    <?php
    $input = array( 'page' => 'a', 'subpage' => 'gaga' );
    $values = array_values($input);
    $result = call_user_func_array('doStuff', $values);
    

    Or, in newer versions of PHP (>=5.6.x), you can use argument unpacking with the ... operator:

    <?php
    $input = array( 'page' => 'a', 'subpage' => 'gaga' );
    $values = array_values($input);
    $result = doStuff(...$values);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 树莓派启动AP热点传入数据
  • ¥15 multisim中关于74ls192n和DSWPK开关的问题(相关搜索:计数器)
  • ¥15 在误装Windows server2019 后如何利用Windows.old恢复?
  • ¥20 代码实现状态连接包过滤防火墙的设计与实现
  • ¥15 vscode的红色箭头爆红和has no default export报错
  • ¥15 关于#sql#的问题:#情况描述 在用vs对项目进行调试时,出现找不到网络路径,然后查看SQL配置工具,发现SQL服务显示远程调用过程失败(相关搜索:防火墙)
  • ¥15 eNSP中基于默认路由及浮动路由的公司与分部互联和校园网综合项目
  • ¥15 主要进行描述泥浆在管路不同区段泥浆的密度不相同,泥浆的密度有高有低,此时管路的摩阻分布需要怎么计算,(标签-matlab)
  • ¥40 通过编制程序计算圆管内层流充分发展对流换热,参数如图5-4,以及公式5-16所示,要求用表5-6对程序计算准确性进行验证
  • ¥20 该学习哪个编程语言? AI会取代程序员吗?