首頁 > 後端開發 > php教程 > while循環中條件式疑惑

while循環中條件式疑惑

WBOY
發布: 2016-08-04 09:22:18
原創
2016 人瀏覽過

<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>
登入後複製
登入後複製
  1. 我預想的程式碼對上面的程式碼是輸出AAA BBB 但為何是true BBB

  2. 看這段程式碼

    <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>
登入後複製
登入後複製
  1. 我預想的程式碼對上面的程式碼是輸出AAA BBB 但為何是true BBB

  2. 看這段程式碼

    <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>
登入後複製

  1. 逗號運算子導致輸出bbb, V=1,2此時,v為2
    2.死循環,。 轉換成boolea可以 ret = ret && true

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板