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

How can I add a parameter to a callback function like in JavaScript?

我想做一个小函数让我连接到数据库,在回调函数中做一些事情然后像这样自动关闭连接:

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_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();
}