将带有参数的函数传递给方法调用
pass function with argument to method call
我正在尝试使用 flight PHP 框架进行路由,使用 medoo 框架进行数据库使用。
//connect database
$database = new medoo([
'database_type' => 'sqlite',
'database_file' => 'db.sqlite'
]);
//my function
function database($database){
$database->insert("ppl", [
"fn" => "joe","ln"=>"doe"]);
}
//
Flight::route('/add/', array(database($database)));
如何使用来自这个地方的参数调用我的函数:
Flight::route('/add/','database')
尝试了不同的变体但出现错误。
我不知道 medoo 或 flight,但您可以使用带有 use
的匿名函数:
Flight::route('/add/',
function() use($database) {
$database->insert("ppl", ["fn"=>"joe","ln"=>"doe"])
});
我认为您需要将其重新构建为 OOP 样式,这将使它更容易和模块化,但如果 $database
是在全局范围内定义的,则在紧要关头:
function database() {
$GLOBALS['database']->insert("ppl", ["fn"=>"joe","ln"=>"doe"]);
}
Flight::route('/add/', 'database');
我正在尝试使用 flight PHP 框架进行路由,使用 medoo 框架进行数据库使用。
//connect database
$database = new medoo([
'database_type' => 'sqlite',
'database_file' => 'db.sqlite'
]);
//my function
function database($database){
$database->insert("ppl", [
"fn" => "joe","ln"=>"doe"]);
}
//
Flight::route('/add/', array(database($database)));
如何使用来自这个地方的参数调用我的函数:
Flight::route('/add/','database')
尝试了不同的变体但出现错误。
我不知道 medoo 或 flight,但您可以使用带有 use
的匿名函数:
Flight::route('/add/',
function() use($database) {
$database->insert("ppl", ["fn"=>"joe","ln"=>"doe"])
});
我认为您需要将其重新构建为 OOP 样式,这将使它更容易和模块化,但如果 $database
是在全局范围内定义的,则在紧要关头:
function database() {
$GLOBALS['database']->insert("ppl", ["fn"=>"joe","ln"=>"doe"]);
}
Flight::route('/add/', 'database');