<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>
Für den obigen Code habe ich erwartet, dass AAA BBB ausgegeben wird, aber warum ist es wahr? BBB
Sehen Sie sich diesen Code an
<code>while($ret = 100) { var_dump($ret) // output:100 }</code>
Wie ergibt der bedingte Ausdruck $ret=100
in Klammern hier true
oder false
? Ich möchte zunächst den Wert von 100
der Variablen $ret
zuweisen und dann eine boolesche Konvertierung für $ret
durchführen, um das Ergebnis zu erhalten.
Ich hoffe, dass jeder helfen kann, die Verwirrung zu beseitigen. Danke schön.
<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>
Für den obigen Code habe ich erwartet, dass AAA BBB ausgegeben wird, aber warum ist es wahr? BBB
Sehen Sie sich diesen Code an
<code>while($ret = 100) { var_dump($ret) // output:100 }</code>
Wie ergibt der bedingte Ausdruck $ret=100
in Klammern hier true
oder false
? Ich möchte zunächst den Wert von 100
der Variablen $ret
zuweisen und dann eine boolesche Konvertierung für $ret
durchführen, um das Ergebnis zu erhalten.
Ich hoffe, dass jeder helfen kann, die Verwirrung zu beseitigen. Danke schön.
<code>if (($i = 'AAA') && ($j = 'BBB')) { var_dump($i, $j); } </code>
Hinweis &&
Priorität
Problem mit der Bedienerlogik, Preisklassen sind falsch
<code class="php">while (($i = 'AAA') && ( $j = 'BBB')) { var_dump($i, $j);// true bbbbb sleep(3); }</code>
Der Kommaoperator bewirkt die Ausgabe bbb, V=1,2. Zu diesem Zeitpunkt ist v 2
Eine Endlosschleife. Konvertieren Sie in Boolea durch ret = ret && true