PHP语句问题:$a = 0; $b = 0; if($a=3 && $b=3){ $a++; $b++;} echo $a.",".$b;

输出是1和4.理解$a是1,因为$a转换成bool的true.没完全明白$b为什么是4,为什么$b没有转换成bool的true,而是被赋值?... 输出是1和4.理解$a是1,因为$a转换成bool的true.没完全明白$b为什么是4,为什么$b没有转换成bool的true,而是被赋值? 展开
 我来答
鸣呜呜cJ
2016-11-21 · TA获得超过593个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:91.2万
展开全部

其实,多加几个括号你就明白了,因为 && 的执行大于 赋值 ,实际上执行的顺序是:

<?php

$a = 0;
$b = 0;
if ($a = ( 3 && ($b = 3))) {
    var_dump($a, $b);
    $a++;
    var_dump($a, $b);
    $b++;
}
echo $a . "," . $b;
百度网友18222f6
2016-11-21 · TA获得超过697个赞
知道小有建树答主
回答量:1381
采纳率:50%
帮助的人:404万
展开全部
if的条件表达式计算时,会发生类型转换,但是只有计算结果才是bool,表达式的参与变量所属类型并不受影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式