while循环中条件表达式疑惑
程序员文章站
2022-06-01 11:34:59
...
while ($i = 'AAA' && $j = 'BBB') {
var_dump($i, $j);
sleep(3);
}
输出结果
bool(true)
string(3) "BBB"
-------------------------------------------------------------
在写一个后台监听程序的时候使用了while循环,于是纠结了一下`while`中的条件表达式
针对上面的代码我预想的是输出AAA BBB 但是为何是是true BBB
-
看这段代码
while($ret = 100) { var_dump($ret) // output:100 }
在这里括号里的条件表达式
$ret=100
是怎样得出结果为true
或者是false
的。 我想的是先把100
这个值赋值给$ret
变量,然后在对$ret
进行布尔值转换取结果。希望大家帮忙解惑。谢谢了。
回复内容:
while ($i = 'AAA' && $j = 'BBB') {
var_dump($i, $j);
sleep(3);
}
输出结果
bool(true)
string(3) "BBB"
-------------------------------------------------------------
在写一个后台监听程序的时候使用了while循环,于是纠结了一下`while`中的条件表达式
针对上面的代码我预想的是输出AAA BBB 但是为何是是true BBB
-
看这段代码
while($ret = 100) { var_dump($ret) // output:100 }
在这里括号里的条件表达式
$ret=100
是怎样得出结果为true
或者是false
的。 我想的是先把100
这个值赋值给$ret
变量,然后在对$ret
进行布尔值转换取结果。希望大家帮忙解惑。谢谢了。
if (($i = 'AAA') && ($j = 'BBB')) {
var_dump($i, $j);
}
注意 &&
优先级
运算符逻辑问题,价格括号就欧克了
while (($i = 'AAA') && ( $j = 'BBB')) {
var_dump($i, $j);// true bbbbb
sleep(3);
}
逗号运算符导致输出bbb, V=1,2此时,v为2
2.死循环,。 转换成boolea可以 ret = ret && true
上一篇: 写好了config文件如何在PHP文件里按条件查询
下一篇: 一个很奇怪的soap有关问题