<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