Php 如何向JavaScript中的回调函数添加参数?

Php 如何向JavaScript中的回调函数添加参数?,php,mysqli,Php,Mysqli,我想创建一个小函数,让我连接到数据库,在回调函数中执行一些操作,然后自动关闭连接,如下所示: function mysqli_conn( $connection( $mysqli ) ) { $connection( new mysqli($c_host, $c_user, $c_password, $c_database ) ); $mysqli->close(); } 用法如下: mysqli_conn(function( $mysqli ) { $sql =

我想创建一个小函数,让我连接到数据库,在回调函数中执行一些操作,然后自动关闭连接,如下所示:

function mysqli_conn( $connection( $mysqli ) ) {
    $connection( new mysqli($c_host, $c_user, $c_password, $c_database ) );
    $mysqli->close();
}
用法如下:

mysqli_conn(function( $mysqli ) {
    $sql = "INSERT INTO some_table (info1, info2, info3, info4) VALUES (?, ?, ?, ?)";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param("ssss", $info1, $info2, $info3, $info4);
    $stmt->execute();
    $stmt->close();     
});
有可能以某种方式实现这一点吗?因为我的
mysqli\u conn
似乎不起作用


如何操作?

假设
$c.
是全局变量/定义在同一个文件中:

function mysqli_conn( $connection ) {
    $mysqli = new mysqli($c_host, $c_user, $c_password, $c_database );
    $connection( $mysqli );
    $mysqli->close();
}

您不会将回调的参数放入函数的定义中。在函数中指定变量,然后将其传递给回调函数

您还需要一个
global
语句来访问所有
$c_XXX
变量

function mysqli_conn($connection) {
    global $c_host, $c_user, $c_password, $c_database;
    $mysqli = new mysqli($c_host, $c_user, $c_password, $c_database );
    $connection( $mysqli );
    $mysqli->close();
}

请把原始代码放回原处。现在我的答案毫无意义,因为它引用的代码并不存在。错误是什么?为什么?如果您不止一次地执行此操作,那么将导致大量开销,创建连接以运行单个语句,并且一旦变量超出范围和/或脚本结束,连接将隐式关闭。这听起来像是你在对待你的PHP应用程序,好像它在一个请求之外是持久的(通常不是),或者你的代码可能会像JS一样以不确定的顺序运行。[不会的]我不知道这有什么大不了的。。谢谢你的信息!嘿,据我所知,您有一个明确的用例需要通过回调来完成,但如果它能帮助人们避免一些常见的错误观念,那么就值得澄清一下。