php - while循环中条件表达式疑惑
大家讲道理
大家讲道理 2017-04-11 09:04:51
[PHP讨论组]
while ($i = 'AAA' && $j = 'BBB') {
    var_dump($i, $j);
    sleep(3);
}

输出结果
bool(true)
string(3) "BBB"

-------------------------------------------------------------

在写一个后台监听程序的时候使用了while循环,于是纠结了一下`while`中的条件表达式
  1. 针对上面的代码我预想的是输出AAA BBB 但是为何是是true BBB

  2. 看这段代码

    while($ret = 100) {
        var_dump($ret) // output:100
    }

    在这里括号里的条件表达式$ret=100是怎样得出结果为true或者是false的。 我想的是先把100这个值赋值给$ret变量,然后在对$ret进行布尔值转换取结果。

    希望大家帮忙解惑。谢谢了。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
PHP中文网
if (($i = 'AAA') && ($j = 'BBB')) {
    var_dump($i, $j);
}

注意 && 优先级

怪我咯

运算符逻辑问题,价格括号就欧克了

while (($i = 'AAA') && ( $j = 'BBB')) {


    var_dump($i, $j);// true bbbbb
    sleep(3);
}
高洛峰
  1. 逗号运算符导致输出bbb, V=1,2此时,v为2
    2.死循环,。 转换成boolea可以 ret = ret && true

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号