<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가 출력될 것으로 예상했는데 왜 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가 출력될 것으로 예상했는데 왜 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입니다. ret = ret && true