小编kuh*_*han的帖子

无法将命名参数传递给具有可变参数的内部函数

我玩了一下 php 的 array_map 函数,并考虑将它与命名参数一起使用,因为参数顺序总是让我恼火。(这些函数没有做任何有用的事情。只是需要一些东西来测试。)

到目前为止一切顺利,这是按预期工作的:

$testArray = [
    'a' => [],
    'b' => [1, 2, 3],
];
$result = array_map(array: $testArray, callback: fn (array $arr) => count($arr) === 0 ? null : $arr);
Run Code Online (Sandbox Code Playgroud)

(即使我需要一段时间来弄清楚数组参数的名称,正如array1德国文档中所记录的那样。但这是一件事情,我一有时间就会研究它。)

但是后来我尝试使用更多参数调用该函数。

所以,我的第一次尝试:

array_map(array: $testArray, callback: fn (array $arr) => count($arr) === 0 ? null : $arr, []);
Run Code Online (Sandbox Code Playgroud)

致命错误:不能在命名参数后使用位置参数

我了解到我不能在命名参数之后传递位置参数。

然后反过来:

array_map([], array: $testArray, callback: fn (array $arr) => count($arr) === 0 ? null : $arr);
Run Code Online (Sandbox Code Playgroud)

致命错误:未捕获错误:命名参数 $callback 覆盖了之前的参数

好的。它将第一个参数作为第一个位置参数并且很困惑,因为我覆盖了它。

我开始谷歌搜索。好的,未知的命名参数被传递给可变参数。让我们试试看:

array_map(array: $testArray, callback: …
Run Code Online (Sandbox Code Playgroud)

php array-map php-8

6
推荐指数
0
解决办法
457
查看次数

如何检查触发事件的元素?

addLBEvent : function()
    {
        var amount = this.imageList.length;
        for(var i = 0;i < amount;i++)
        {
            if(this.imageList[i].addEventListener)
            {
                this.imageList[i].addEventListener("click",this.startLB,false);
            }
            /* 
                IE<9-part
            */
        }
    },

startLB : function(src)
    {


    }
Run Code Online (Sandbox Code Playgroud)

我想知道哪个元素触发了该事件。如果我在 HTML 代码中执行此操作,我会编写类似的内容onlick="startLB(this.src)"。我怎样才能做这样的事情addEventListener?我已经尝试过 `addEventListener("click","myobjectname.startLB(this.src)" 但它不起作用。

抱歉我的英语不好

html javascript

2
推荐指数
1
解决办法
4200
查看次数

标签 统计

array-map ×1

html ×1

javascript ×1

php ×1

php-8 ×1