以下不起作用:
use application\components\auditor\AuditLevel;
public function actionAudit()
{
$data=unserialize($_POST['data']);
$message=$data['message'];
$context=$data['context'];
$level=$context['level'];
Yii::app()->auditor->log(constant('AuditLevel::'.$level), $message, $context);
}
// constant(): Couldn't find constant AuditLevel::INFO
但是拥有所有命名空间都有效:
use application\components\auditor\AuditLevel;
public function actionAudit()
{
$data=unserialize($_POST['data']);
$message=$data['message'];
$context=$data['context'];
$level=$context['level'];
Yii::app()->auditor->log(constant('application\components\auditor\AuditLevel::'.$level), $message, $context);
}
知道如何使用上面声明的命名空间而不是在函数中吗?
Thanks!
来自 php.net 评论部分constant():
从 PHP 5.4.6 开始,constant() 不再关注使用它的文件中可能定义的任何命名空间别名。 IE。 Constant() 的行为始终如同从全局命名空间调用一样。
您必须使用完整的命名空间路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)