Heim >Backend-Entwicklung >PHP-Tutorial >Fragen zu bedingten Ausdrücken in der While-Schleife

Fragen zu bedingten Ausdrücken in der While-Schleife

WBOY
WBOYOriginal
2016-08-04 09:22:182041Durchsuche

<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. Für den obigen Code habe ich erwartet, dass AAA BBB ausgegeben wird, aber warum ist es wahr? BBB

  2. 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.

Antwortinhalt:

<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. Für den obigen Code habe ich erwartet, dass AAA BBB ausgegeben wird, aber warum ist es wahr? BBB

  2. 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>

  1. 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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn