简单的代码,意想不到的结果. <?php $a = 3; $b = 3; if($a=5 || $b=5){ echo "$a<br>"; $a++; $b++; } echo "$a,$b";输出结果11,4不理解a的值为什么是1? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $a = 3;$b = 3;if($a=5 || $b=5){ var_dump($a); //bool(true) $a++; $b++;} var_dump($a, $b); //bool(true) int(4)这是运算符的优先级问题由于赋值符(=)低于逻辑运算符(||)所以 $a=5 || $b=5实际是 $a = (5 || $b=5)$a 是逻辑值 true其后的 $a++ 并不会改变 $a 为 true 的事实而 true 用 echo 打印时就是 1因此你用 var_dump 就能看明白了 if($a=5 || $b=5)这个判断其实就写的不合理(可以这么写,我懂),但是,在实际运用中,你要这么写,就是一耳光。。 php 小偷程序 求解! 初学PHP遇到的传值问题,求高手解答 蛋疼的新手又来求助前辈了。。同一页面处理post。。 selenium的一个错误,java下可行,php下不行~! 请问劫狱系统怎么做? 再给你10分? Apache服务器绑定域名 php连接Oracle,使用原来的过程函数,还是PDO好?? 操作数据库报错,哪位大哥能帮我看看吗? php使用javabridge时,怎么引入jar包 关于 PHP 中 按钮的小问题 求教... 2008服务器 熟悉的来 拜谢!!!!!!!!!!!
$b = 3;
if($a=5 || $b=5){
var_dump($a); //bool(true)
$a++;
$b++;
}
var_dump($a, $b); //bool(true) int(4)
这是运算符的优先级问题
由于赋值符(=)低于逻辑运算符(||)
所以 $a=5 || $b=5
实际是 $a = (5 || $b=5)
$a 是逻辑值 true其后的 $a++ 并不会改变 $a 为 true 的事实
而 true 用 echo 打印时就是 1
因此你用 var_dump 就能看明白了
if($a=5 || $b=5)
这个判断其实就写的不合理(可以这么写,我懂),但是,在实际运用中,你要这么写,就是一耳光。。