PHP 中字符串与0最比较

为什么我用一个非空字符串与0做比较结果为真?例如$test01="hello"if($test01==0){echo"true"}else{echo"false"}输出的... 为什么我用一个非空字符串与0做比较结果为真?
例如
$test01="hello"
if($test01==0){
echo "true"
}
else{
echo"false"
}
输出的结果为true
希望能给解释一下原理。
展开
 我来答
百度网友a435633
2010-01-25 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
不同变量类型进行比较的时候,PHP有内部机制进行转换,再加以比较。
$test01 == 0
应该是把 $test01 转化成整型再进行比较,所以结果就是 true 了。

如果不熟悉内部机制,在比较之前,尽量自己转化为相同类型再进行比较。

比较安全的做法就是用 === (三个等于号),这样不仅比较内容,还比较类型,如果类型不一致就按 false 处理。
阳光上的桥
2010-01-25 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65790
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
在$test01="hello"时,$test01==0的结果为true,因为比较之前要把"hello"转换为整数,结果为0。$test01===0的结果为false,因为===不转换类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amaze_
2010-01-25 · TA获得超过122个赞
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
0==0

参考资料: http://www.laruence.com/2009/02/21/662.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式