将带有参数的函数传递给方法调用

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')

尝试了不同的变体但出现错误。

我不知道 medooflight,但您可以使用带有 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');