摘要:本文主要向大家介绍了PHP语言容易被忽略而出错陷阱 0 == ERROR_NONE,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。
本文主要向大家介绍了PHP语言容易被忽略而出错陷阱 0 == ERROR_NONE,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。
>php -r "$a=0;var_dump($a,ERROR_NONE,$a==ERROR_NONE);";
PHP Notice: Use of undefined constant ERROR_NONE - assumed 'ERROR_NONE' in Command line code on line 1
Notice: Use of undefined constant ERROR_NONE - assumed 'ERROR_NONE' in Command line code on line 1
PHP Notice: Use of undefined constant ERROR_NONE - assumed 'ERROR_NONE' in Command line code on line 1
Notice: Use of undefined constant ERROR_NONE - assumed 'ERROR_NONE' in Command line code on line 1
int(0)
string(10) "ERROR_NONE"
bool(true)
一个没有定义的常量, 在系统里面会自动当做字符串处理。
0 与任意非数字(或者说,不可转化为数字的字符)前导的字符串比较(操作符为==), 均返回 true.
原因是, 数字与字符串比较时, 先尝试将字符串转换为数字, 再比较, 一个不能转换为数字的字符串, 转换结果为0, 故, 与0比较总返回 true.
//$result为数字, ERROR_NONE未定义
//当$result = 0, 条件一直成立, 当$result!=0,条件一直不成立if ($result == ERROR_NONE) {
}
以上就介绍了PHP的相关知识,希望对PHP有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言PHP频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号