ReflectionFunction在laravel中找不到

时间:2017-10-29 11:42:54

标签: php laravel

查找Laravel应用程序中定义函数的位置 我正在尝试这样做:

App\Http\Controllers内部命名空间:

$reflFunc = new ReflectionFunction('function_name');

但是得到一个错误:

  

PHP错误:类'App \ Http \ Controllers \ ReflectionFunction'没有   在发现   /var/www/html/s/source/app/Http/Controllers/HomeController.php   在第169行

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

ReflectionFunction Class不应该位于laravel试图找到它的位置, 但请说明我可能遗失的是什么?

3 个答案:

答案 0 :(得分:4)

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

ReflectionFunction

请注意$reflFunc = new \ReflectionFunction('function_name'); print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine(); 而不是简单的\ReflectionFunction

答案 1 :(得分:1)

您似乎忘记了班级中的use ReflectionFunction;。或者更改为(注意反斜杠)$reflFunc = new \ReflectionFunction('function_name');

答案 2 :(得分:1)

ReflectionFunction位于全局命名空间中。

请参阅:http://php.net/manual/en/class.reflectionfunction.php

在全局命名空间写入

中使用类构造函数

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