嗯,不知道要搜索什么,因此不知道这是不是重复。
示例:
function foo($bar){
switch($bar)
case UNDEFINED:
return 'foo';
break;
case DEFINED:
return 'bar';
break;
default:
return 'no foo and no bar';
}
}
echo foo(DEFINED); # edited: had $ before function call
// bar
echo foo(OUTPUT);
// no foo and no bar
PHP(版本5.3)不会抛出任何错误,但这有什么缺点吗?
答案 0 :(得分:3)
未定义的常量被解释为字符串。在你的情况下,这将是两个字符串“DEFINED”和“UNDEFINED”。从PHP手册:
如果使用未定义的常量,PHP 假设你的意思是 恒定,就像你打电话一样 它作为一个字符串(CONSTANT vs “不变”)。级别错误 E_NOTICE将在此时发布 发生的情况。
编辑忽略E_NOTICE
被认为是错误的样式,这来自PHP文档:
在开发期间启用E_NOTICE 有一些好处。用于调试 用途:注意消息将发出警告 关于代码中可能存在的错误。 例如,使用未分配的值 被警告它非常有用 找到拼写错误并节省时间 调试。注意消息将发出警告 关于糟糕的风格。例如, $ arr [item]最好写成 $ arr ['item']因为PHP试图对待 “项目”为常数。如果不是 常量,PHP假定它是一个字符串 数组的索引。