【问题标题】:pass function with argument to method call将带参数的函数传递给方法调用
【发布时间】:2016-10-06 03:41:48
【问题描述】:

我正在尝试使用 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')

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

【问题讨论】:

  • 你说的错误...
  • 是的“指定的无效回调”我在 php 手册中阅读了有关回调的信息,但还不能让它工作。
  • 不确定我在做什么,已编辑...

标签: php medoo flightphp


【解决方案1】:

我不知道 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');

【讨论】:

    猜你喜欢
    • 2016-12-18
    • 2015-08-29
    • 2015-05-04
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多