PHP:带未定义常量的switch语句

关于PHP如何处理switch语句的一个简单问题.

如果我有以下代码

switch (APPLICATION_ENVIRONMENT) {
    case 'production':
        echo 'production';
        break;
    case 'stage':
        echo 'stage';
        break;
    default: //dev
        echo 'dev';
}

如果未在任何地方定义APPLICATION_ENVIRONMENT,这仍将评估为默认值吗?还是会抛出错误?查看正在运行的应用程序中的现有源,谁曾经这样做过,谁先对常量进行了if(defined())来检查它是否存在,如果switch可以对我正确地进行评估,那是浪费的

谢谢
DJ

解决方法:

它将评估开关,但是会引发错误.

尝试以下方法:

$env = defined('APPLICATION_ENVIRONMENT') ? APPLICATION_ENVIRONMENT : null;

switch($env) {
  ..
}
上一篇:包含文件的__FILE__的PHP输出


下一篇:dubbo源码分析02:服务引用