fat-free-framework - 无脂肪框架缺少 {closure}() 的参数 1

标签 fat-free-framework

在执行这段代码时

    $f3=require('lib/base.php');

    $f3->route('GET /brew/@count',
        function($f3) {
            echo $f3->get('PARAMS.count').' bottles of beer on the wall.';
        }
    );
    $f3->run();

来自无脂肪框架示例 https://github.com/bcosca/fatfree#routing-engine我在浏览器中收到此错误:

    Internal Server Error

    Missing argument 1 for {closure}()

    * /var/www/f3/index.php:36 Base->{closure}
    * /var/www/f3/lib/base.php:972         
    * Base->call(Closure::__set_state(),NULL,'beforeroute,afterroute')
    * /var/www/f3/index.php:40 Base->run()

我知道问题是 $f3 没有作为参数传递给函数,但我不明白为什么。有人可以帮助我吗?

最佳答案

我也有同样的情况!我使用的是 SourceForge 的 3.0.1 版本。我尝试了以下方法,虽然有效,但产生了其他问题:

$f3=require('lib/base.php');

$f3->route('GET /brew/@count',
    function() use ($f3) {
        echo $f3->get('PARAMS.count').' bottles of beer on the wall.';
    }
);
$f3->run();

use 子句(在 php 中没有很好地记录)允许您从匿名函数使用父作用域中的变量。在这里阅读更多信息:Closure vs Anonymous function (difference?)

尝试将 F3 核心升级到最新版本。一位开发人员建议从此处升级到 3.0.2 版本:https://github.com/bcosca/fatfree 。这是一个非常快速的修复!

关于fat-free-framework - 无脂肪框架缺少 {closure}() 的参数 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14034728/

相关文章:

php - 无脂框架; SQL Mapper 插入两次

FatFree 模板中的 PHP 代码

php - 使用 Fat Free Framework 从 SQL 创建完整的选择下拉列表

php - 无脂肪框架刷新部分输出

mysql - 如何在 Fat-Free Framework 中插入没有主键的多条记录

php - 我们如何在 PHP 的 Fatfree 框架中包含语言区域设置

PHP - Fat Free Framework - 子文件夹中的命名 URL 路由 - 404

php - 不允许 chmod() 操作 - FatFree 框架

php - Wamp 在 root 以外的任何地方抛出 404 错误

model-view-controller - 如何在 fatfree 框架中构建模型