dongmen9517 2017-10-29 11:42
浏览 103
已采纳

ReflectionFunction在laravel中找不到

To find where a function is defined in a Laravel application I'm trying to do this:

Inside App\Http\Controllers Namespace:

$reflFunc = new ReflectionFunction('function_name');

But get an error:

PHP Error: Class 'App\Http\Controllers\ReflectionFunction' not found in /var/www/html/s/source/app/Http/Controllers/HomeController.php on line 169

I even tried to use the global namespace:

ReflectionFunction Class is not supposed to be located where laravel is trying to find it, But please suggest what is that I could be missing?

  • 写回答

3条回答 默认 最新

  • dth8312 2017-10-29 11:53
    关注

    You're running this code inside class that by itself is inside namespace App\Http\Controllers. So you should explicitly define that ReflectionFunction class belongs to global namespace:

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

    Notice \ReflectionFunction instead of simple ReflectionFunction

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?