为了账号安全,请及时绑定邮箱和手机立即绑定

关于php比较运算符的2个疑问?

关于php比较运算符的2个疑问?

PHP
慕容粉丝 2016-07-23 20:20:04
(1)代码: $a = 5; var_dump($a > true).'<br>';  为何结果为:boolean false?求详解(2)代码:<?php $a = 3; $b = 5; if($a = 5 || $b = 7){ $a++; $b++; } echo $a,$b; var_dump($a); var_dump($b);?>输出为:16。求详解,谢谢。以及为什么var_dump($a)为boolean true。为什么$b=6?
查看完整描述

2 回答

已采纳
?
慕妹3887762

TA贡献9条经验 获得超4个赞

问题一:

这个是强制转换的问题,当你使用$a > true时,$a被强制转换成了布尔值进行比较,比较标准是true>false

问题二:

if($a = 5 || $b = 7),这个语句中如果不是故意写错的话,应该要写成( ( $a == 5 ) || ($b == 7 ) )那比较直观,也就不会有这么多问题了。这个主要就是if里面的运算顺序问题了

$a = 5 || $b = 7 这里其实按去处符就变成了 $a = (5  ||  ($b=7))  ,然后 由于$a = 5 返回了bool(true),所以$b = 7是不会执行的。到了函数体中,由于 $a = true;所以$a ++ 不会有变化。

查看完整回答
1 反对 回复 2016-07-23
  • 慕容粉丝
    慕容粉丝
    多谢,刚刚看视频老师也讲到了。确实是运算优先级的问题。
?
自恋的疯子linda

TA贡献11条经验 获得超4个赞

判断的话是两个等于号。负值的话一个等于号

查看完整回答
反对 回复 2016-07-23
  • 2 回答
  • 0 关注
  • 1577 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信