PHP 5.6 Symfony 3
我的包中有一个文件,其中包含一个带有已定义常量的命名空间......
constfile.php
<?php
namespace Some\Interesting\ConstFile {
const NAME_OF_CONSTANT = 'Some Constant';
}
namespace Some\Interesting\ConstFile\Specific {
const NAME_OF_SPECIFIC_CONSTANT = 'Some Specific Constant';
}
然后我在另一个包中有另一个文件,我试图使用常量......
stuff.php
<?php
namespace More\Cool\Stuff;
use Some\Interesting\ConstFile as CF;
use Some\Interesting\ConstFile\Specific as CFS;
class Stuff {
public function doit() {
$output->writeln(CF\NAME_OF_CONSTANT);
$output->writeln(CFS\NAME_OF_SPECIFIC_CONSTANT);
}
}
PHPStorm对此设置没有任何投诉。但是,当我运行此操作时,我收到了一个致命错误:stuff.php中的未定义常量NAME_OF_CONSTANT&#39;错误。
答案 0 :(得分:2)
尝试加载此类文件时自动加载效果不佳,请尝试手动包含原始文件。
require 'path/to/constfile.php'
答案 1 :(得分:1)
当您使用反斜杠错误地为命名空间添加前缀时,也会发生此错误。 使用 语句的前缀可以是 \ , 名称空间 不能。 命名空间中的主要反斜杠导致php将整行理解为常量。