在php中分配变量值

我只是对将 php 上的变量值分配给另一个感到困惑,它是如何工作的?!例如:


 <?PHP

    $var1=mysqli_fetch_array($query);

    while($var2=$var1)

     {

       echo $var2[$key];   /** this wont't work Correctly however $var1 it's 

       value = to mysqli_fetch_array**/

     }


    while($var1=mysqli_fetch_array($query))

     {

      echo $var1[$key];   /** this will work , why ! **/

     }


 ?>


慕桂英546537
浏览 80回答 1
1回答

POPMUISE

PHP 赋值行为的一个特点是它还返回赋值的结果。这允许以下语句:$a = $b = $c = 3; // All of a, b and c will equal 3和:while ($variable = call_a_function()) {&nbsp; do_something_with($variable);}在后一个示例中,在循环迭代开始时将其variable分配给输出;call_a_function()一旦call_a_function()返回一个计算结果为 的值,false循环就结束。如果返回的值不计算为false,variable则将包含返回的任何值,直到它再次被覆盖。您的示例使用类似的行为。之间的关键区别$var1=mysqli_fetch_array($query);while($var2=$var1){&nbsp; echo $var2[$key];}和:while($var1=mysqli_fetch_array($query)){&nbsp; echo $var1[$key];}...是在第一个示例中,$var1仅分配给循环开始mysqli_fetch_array($query) 之前的返回值,而在第二个示例中,$var1分配给循环的每次迭代中的mysqli_fetch_array($query)返回值。最终,使这两段代码产生重大差异的原因在于,mysqli_fetch_array($query)它们会根据情况返回不同的结果。将代码片段组合成一个按预期工作但使用 $var2 的示例,产生:while($var2=$var1=mysqli_fetch_array($query)){&nbsp; echo $var2[$key];}或者$var1=mysqli_fetch_array($query); // ask first timewhile($var2=$var1){&nbsp; echo $var2[$key];&nbsp; $var1=mysqli_fetch_array($query); // ask again, because the answer changed}TL;DR:第一个例子问一个问题一次,第二个例子问一个问题很多次。在这种情况下,代码的预期行为需要多次询问问题,因为答案会随着时间而变化。
打开App,查看更多内容
随时随地看视频慕课网APP