<code>while ($i = 'AAA' && $j = 'BBB') {
var_dump($i, $j);
sleep(3);
}
</code><code class="php">输出结果 bool(true) string(3) "BBB"</code>
<code> ------------------------------------------------------------- 在写一个后台监听程序的时候使用了while循环,于是纠结了一下`while`中的条件表达式</code>
针对上面的代码我预想的是输出aaa bbb 但是为何是是true bbb
看这段代码
<code>while($ret = 100) {
var_dump($ret) // output:100
}</code>在这里括号里的条件表达式$ret=100是怎样得出结果为true或者是false的。 我想的是先把100这个值赋值给$ret变量,然后在对$ret进行布尔值转换取结果。
希望大家帮忙解惑。谢谢了。
<code>while ($i = 'AAA' && $j = 'BBB') {
var_dump($i, $j);
sleep(3);
}
</code><code class="php">输出结果 bool(true) string(3) "BBB"</code>
<code> ------------------------------------------------------------- 在写一个后台监听程序的时候使用了while循环,于是纠结了一下`while`中的条件表达式</code>
针对上面的代码我预想的是输出aaa bbb 但是为何是是true bbb
看这段代码
<code>while($ret = 100) {
var_dump($ret) // output:100
}</code>在这里括号里的条件表达式$ret=100是怎样得出结果为true或者是false的。 我想的是先把100这个值赋值给$ret变量,然后在对$ret进行布尔值转换取结果。
希望大家帮忙解惑。谢谢了。
<code>if (($i = 'AAA') && ($j = 'BBB')) {
var_dump($i, $j);
}
</code>注意 && 优先级
运算符逻辑问题,价格括号就欧克了
<code class="php">while (($i = 'AAA') && ( $j = 'BBB')) {
var_dump($i, $j);// true bbbbb
sleep(3);
}</code>
逗号运算符导致输出bbb, V=1,2此时,v为2
2.死循环,。 转换成boolea可以 ret = ret && true
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号