gpt4 book ai didi

PHP fatal error : Cannot use positional argument after argument unpacking

转载 作者:行者123 更新时间:2023-12-03 22:57:52 25 4
gpt4 key购买 nike

任务

我想用 variable number of parameters (using ... ) 编写一个函数,该函数调用另一个具有相同参数的函数,并在 末尾调用一个新函数 。顺序很重要!下面的示例仅用于演示。

我试过什么

function foo(...$params) {
$extraVariable = 6;
var_dump(...$params, $extraVariable);
}
foo(2, 4, 1, 4);

问题

当我运行它时,我收到以下错误消息:

PHP Fatal error: Cannot use positional argument after argument unpacking in /home/user/main.php on line 3



我怎样才能实现我的目标?

最佳答案

tl;博士

设计不允许在参数后解包,但有两种解决方法:

  • 从新元素创建一个数组并将其解包为 Paul suggested :

    function foo(...$params) {
    $extraVariable = 6;
    var_dump(...$params, ...[$extraVariable]);
    }
  • 将新元素推送到参数:

    function foo(...$params) {
    $extraVariable = 6;
    $params[] = $extraVariable;
    var_dump(...$args);
    }

  • 解释

    PHP 根本不支持这一点。你可以看到 unit test that checks this behavior :

    --TEST--
    Positional arguments cannot be used after argument unpacking
    --FILE--
    <?php

    var_dump(...[1, 2, 3], 4);

    ?>
    --EXPECTF--
    Fatal error: Cannot use positional argument after argument unpacking in %s on line %d

    关于PHP fatal error : Cannot use positional argument after argument unpacking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781805/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com