gpt4 book ai didi

PHP Mysqli 和使用 call_user_func_array

转载 作者:行者123 更新时间:2023-11-29 08:18:38 25 4
gpt4 key购买 nike

目前我正在使用:

call_user_func(
$func,
$_POST['a'],$_POST['b'],$_POST['c'],$_POST['d'],$_POST['e']
);

但是,随着事情的增长,脚本会调用。迫切需要这样的东西:

call_user_func_array(
$func,
$array("_POST", $_POST)
);

更加明显。总体而言,我相信我将需要创建一个新数组。因为在我的脚本中,除了 $_POST[headers] 之外,每个 $_POST 都被推送到 $func。虽然当我尝试上面的内容时它说:

函数名称必须是字符串。

也许我只是不知道如何正确地工作。并且可以使用一些指导。谢谢。

它的全部调用方式的示例是:

function somefunc($a,$b,$c,$d,$e)

其中 $func 被设置为函数之一,例如 somefunc。然后,除了 header 之外的所有数据都被推送到该函数。

以我现在使用 call_user_func 的方式,它可以正常运行。尽管尝试进行转换,以便我不必总是添加它,并且它使用数组动态设置。

最佳答案

它比你做的要简单。

以下是对 call_user_func_array() 的工作调用示例:

<?php

function somefunc($a, $b, $c)
{
echo "a = $a\n";
echo "b = $b\n";
echo "c = $c\n";
}

$post = array('x'=>1, 'y'=>2, 'z'=>3);

$func = 'somefunc';
call_user_func_array($func, $post);

该函数有两个参数:

  • 第一个是一个可调用,它可以只是函数的名称。
  • 第二个是一个数组。数组的按照相同的顺序分配给函数的参数。数组的将被忽略。

您的表达式$array("_POST", $_POST)不正确。它将调用一个函数,其名称位于变量 $array 中。我认为您将其与对象的可调用语法混淆了。

<小时/>

您在问题标题和标签中引用了 mysqli,但没有在问题中提及与 mysqli 相关的任何内容。

call_user_func_array() 与 mysqli 的最常见用法是当您想要使用可变数量的参数调用函数 mysqli_stmt_bind_param() 时,当您尝试时创建一个通用函数来准备任何 SQL 语句并将任意数量的参数绑定(bind)到它。

我过去曾多次发布过这种情况的答案:

关于PHP Mysqli 和使用 call_user_func_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20022278/

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