gpt4 book ai didi

php - 试图理解 PHP array_map() 调用的奇怪变体

转载 作者:行者123 更新时间:2023-12-02 07:47:46 25 4
gpt4 key购买 nike

<分区>

我试图理解我在开源 oauth-php 库中找到的一些代码。相关代码片段是:

protected function sql_printf ( $args )
{
$sql = array_shift($args);
if (count($args) == 1 && is_array($args[0]))
{
$args = $args[0];
}
$args = array_map(array($this, 'sql_escape_string'), $args);
return vsprintf($sql, $args);
}

其中 $args 是一个参数数组,其中包含用于格式化打印操作的变量。我查看了 array_map 的文档:

http://php.net/manual/en/function.array-map.php

和用户评论,我没有看到任何用例,其中调用 array_map() 的第一个参数是数组本身。在我看到的所有用例中,第一个参数要么是 NULL,要么是一个(回调)函数。对我来说很明显,代码采用 $args 数组,然后使用 $this->sql_escape_string() 清理过的参数构建一个新数组。

但是语句“array($this, 'sql_escape_string')”让我很困惑,因为我本以为只是'$this->sql_escape_string',或者这不是一个有效的语法?如果是这样,如何将 $this 和 'sql_escape_string' 包装在一个数组中创建一个有效的回调函数供 array_map() 使用?

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