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