讨论数量:
因为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...

关于 LearnKu
推荐文章: