首页 文章

ReflectionFunction在laravel中找不到

提问于
浏览
1

要查找Laravel应用程序中定义函数的位置,我正在尝试执行此操作:

里面 App\Http\Controllers 命名空间:

$reflFunc = new ReflectionFunction('function_name');

但得到一个错误:

PHP错误:第169行的/var/www/html/s/source/app/Http/Controllers/HomeController.php中找不到类'App \ Http \ Controllers \ ReflectionFunction'

我甚至尝试使用全局命名空间:

ReflectionFunction类不应该位于laravel试图找到它的地方,但请建议我可能缺少什么?

3 回答

  • 1

    您正在类中运行此代码,该代码本身位于 namespace App\Http\Controllers 内 . 所以你应该明确定义 ReflectionFunction 类属于全局命名空间:

    $reflFunc = new \ReflectionFunction('function_name');
    print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
    

    注意 \ReflectionFunction 而不是简单的 ReflectionFunction

  • 2

    你似乎忘了在 class 的顶部 use ReflectionFunction; . 或者改为(注意反斜杠) $reflFunc = new \ReflectionFunction('function_name');

  • 1

    ReflectionFunction位于全局命名空间中 .

    见:http://php.net/manual/en/class.reflectionfunction.php

    在全局命名空间写入中使用类构造函数

    $ reflFunc = new \ ReflectionFunction('function_name');

相关问题