我已经搜索了很多其他类似的Q/A,但似乎没有一个解决这个特定的情况:
有一个包含常量的文件:App/Core/SomeConstants.php
,其中包含:
namespace App\Core\SomeConstants;
const MY_CONST = 'myconstvalue';
字符串
然后有一个控制器使用这个常量,如下所示:
use const App\Core\SomeConstants\MY_CONST;
something("foo" . MY_CONST);
型
根据https://www.php.net/manual/en/language.namespaces.importing.php,我认为这会工作,但没有,当我运行该使用代码(当然在重新加载自动加载器/清除缓存后),我得到Undefined constant \"App\\Core\\SomeConstants\\MY_CONST\""
。
我甚至尝试了像something("foo" . \App\Core\SomeConstants\MY_CONST);
这样的完整名称空间引用,仍然一无所获。
同样有趣的是,IDE vscode没有问题,实际上在这两种情况下都显示了适当的提示和内容。
我做错了什么?它甚至可以**不 * Package 常量到一个类中吗?这种行为在哪里有文档记录?谢谢
1条答案
按热度按时间t30tvxxf1#
正如@msg在评论中提到的,
require
指令丢失了。需要加载包含已定义常量的PHP文件。字符串