字符串'00'和'0'有什么区别

<?php
echo '0' == 0 ?1:0;
echo '00' == 0 ?1:0;
echo '01' == 0 ?1:0;
echo '00' == '0' ? 1:0;
echo '0' == false ? 1:0;
echo '00' == false ? 1:0;

结果

110110

现在待解决的问题是字符串'00'='0'

阅读 7.2k
4 个回答

PHP中,
字符串 对比 数字:intval(字符串) == 数字 但是如果转不了就不等于了
字符串 对比 Boolean:boolval(字符串) == boolean
字符串 对比 字符串:'000' == '0' true

也就是在尝试将能转化成数字的一律转化成数字

文档支持 http://php.net/manual/zh/lang...

但是和Boolean对比时是boolval比较严格,只支持

  • 0 false

  • '0' false

  • '' false

  • 'abc123' true

  • [] false

  • [xxx] true

  • null false

当转换为 boolean 时,以下值被认为是 FALSE:

布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 "0"(这里要注意'00'的区别) '0'转变后是false,然后'00' 是true
不包括任何元素的数组
不包括任何成员变量的对象(仅 PHP 4.0 适用)
特殊类型 NULL(包括尚未赋值的变量)
从空标记生成的 SimpleXML 对象

参考http://php.net/manual/zh/lang...

楼上已经说了,就贴个==

clipboard.png

每个平台对应有些变化, 觉得如果想跨平台开发, 或者想学习多种语言, 请用标准的方式去比较而不是随便判断一个对象是否false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏