讨论数量:
因为use
发生在编译时
,不是运行时
,引入任意的类
、函数
和常量
都不会报错。
还有一个类关键字::class
的解析也是发生在编译时
,所以以下这种代码也不会报错,而且还会正常输出:
echo Hello\World\ExistClass::class; // Hello\World\ExistClass
echo Hello\World\NotExistClass::class; // Hello\World\NotExistClass
use Hello\World\NotExistClass;
echo NotExistClass::class; // Hello\World\NotExistClass
$c = new NotExistClass(); // Fatal error: Uncaught Error: Class "Hello\World\NotExistClass" not found in ...
因为use
发生在编译时
,不是运行时
,引入任意的类
、函数
和常量
都不会报错。
还有一个类关键字::class
的解析也是发生在编译时
,所以以下这种代码也不会报错,而且还会正常输出:
echo Hello\World\ExistClass::class; // Hello\World\ExistClass
echo Hello\World\NotExistClass::class; // Hello\World\NotExistClass
use Hello\World\NotExistClass;
echo NotExistClass::class; // Hello\World\NotExistClass
$c = new NotExistClass(); // Fatal error: Uncaught Error: Class "Hello\World\NotExistClass" not found in ...
stackoverflow
同样问题的回答:stackoverflow.com/questions/414035...
PHP官网
相关内容:www.php.net/manual/zh/language.nam...
一位laravel核心成员
@Tim MacDonald同样问题的博文:timacdonald.me/php-be-all-like-tha...
推荐文章: