如何向 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();
}
我想做一个小函数让我连接到数据库,在回调函数中做一些事情然后像这样自动关闭连接:
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();
}