参数 #1 ($callback) 必须是 Closure 类型,给定数组

Argument #1 ($callback) must be of type Closure, array given

提问人:mano mpofu 提问时间:10/17/2023 最后编辑:ADysonmano mpofu 更新时间:10/17/2023 访问量:116

问:

您正在 PHP/Apache 上运行驾校系统,当我尝试加载系统时收到此错误。

错误似乎来自 routes.php 和 SimpleRouter.php。这是错误:

致命错误:未捕获的 TypeError: Pecee\SimpleRouter\SimpleRouter::group():参数 #1 ($callback) 必须 类型为 Closure,数组给定,调用 C:\xampp\htdocs\driving\src\routes.php在第 17 行,定义在 C:\xampp\htdocs\driving\vendor\pecee\simple-router\src\Pecee\SimpleRouter\SimpleRouter.php:182 堆栈跟踪:#0 C:\xampp\htdocs\driving\src\routes.php(17): Pecee\SimpleRouter\SimpleRouter::group(Array, Object(Closure)) #1 C:\xampp\htdocs\driving\src\Application.php(94): require_once('C:\xampp\htdocs...') #2 C:\xampp\htdocs\driving\index.php(11):简化\应用程序->route() #3 {main} 扔进去 C:\xampp\htdocs\driving\vendor\pecee\simple-router\src\Pecee\SimpleRouter\SimpleRouter.php 线路 182

**路由的代码片段 .php 第 17 行: **

Router::group(['prefix' => '/driving'], function()
 {    
      Router::group(array(
        'exceptionHandler' => Handler::class
    ), function()
     {
        Router::group(array(
            'middleware' => Simcify\Middleware\Authenticate::class
        )

simpleRouter 的代码片段.php第 182 行:

  public static function group(\Closure $callback, array $settings = [])
    {
        if (is_callable($callback) === false) {
            throw new InvalidArgumentException('Invalid callback provided. Only functions or methods supported');
        }

请协助。提前致谢

PHP 闭包 路由器 词法

评论

0赞 AymDev 10/17/2023
这回答了你的问题吗?参考 - 这个错误在PHP中是什么意思?
0赞 ADyson 10/17/2023
您对错误消息的哪一部分感到困惑?数组显然不是 Closure。这段代码是你自己写的,还是只是运行别人的应用程序的副本?
0赞 mano mpofu 10/17/2023
@ADyson是的,我正在运行别人的应用程序,我是一个乞丐
0赞 ADyson 10/17/2023
除非您自己修改了代码并因此导致了此问题,否则显然它包含一个严重的错误,并且可能没有经过作者的正确测试 - 因此您应该将其与错误报告一起返回给作者并请求软件的更新版本。我可以看到错误的原因是什么,但我们(或至少对我)不清楚实际意图是什么,因此我无法确切地建议用什么替换不正确的代码。
0赞 mano mpofu 10/17/2023
好的,感谢您的反馈

答:

1赞 volkerschulz 10/17/2023 #1

在我看来,有人篡改了.函数签名是(并且一直都是),反之亦然。SimpleRouter.phppublic static function group(array $settings, Closure $callback): IGroupRoute

由于它在文件夹内,我想它是通过作曲家安装的?进行备份,然后尝试初学者。如果这不起作用,请将您的问题添加到您的问题中。vendorcomposer updatecomposer.json

这是源存储库:https://github.com/skipperbent/simple-php-router/tree/master

评论

0赞 mano mpofu 10/17/2023
不能将数组用作 Closure 类型的参数$callback的默认值
0赞 volkerschulz 10/17/2023
@manompofu 嗯?
0赞 mano mpofu 10/17/2023
更新 SimpleRouter.php 函数后出现错误。我会在这个问题上补充composer.json
0赞 volkerschulz 10/17/2023
还有完整的新错误消息,请。不过,我可能无法在明天之前回复你。
0赞 mano mpofu 10/18/2023
是的,但是在我交换函数签名后发生了这个新错误:public static function group(array $settings, Closure $callback)),