亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在php中分配變量值

在php中分配變量值

PHP
慕桂英546537 2022-06-17 14:51:19
我只是對將 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 ! **/     } ?>
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

PHP 賦值行為的一個特點是它還返回賦值的結果。這允許以下語句:


$a = $b = $c = 3; // All of a, b and c will equal 3

和:


while ($variable = call_a_function()) {

  do_something_with($variable);

}

在后一個示例中,在循環迭代開始時將其variable分配給輸出;call_a_function()一旦call_a_function()返回一個計算結果為 的值,false循環就結束。如果返回的值不計算為false,variable則將包含返回的任何值,直到它再次被覆蓋。


您的示例使用類似的行為。之間的關鍵區別


$var1=mysqli_fetch_array($query);

while($var2=$var1)

{

  echo $var2[$key];

}

和:


while($var1=mysqli_fetch_array($query))

{

  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))

{

  echo $var2[$key];

}

或者


$var1=mysqli_fetch_array($query); // ask first time

while($var2=$var1)

{

  echo $var2[$key];

  $var1=mysqli_fetch_array($query); // ask again, because the answer changed

}

TL;DR:第一個例子問一個問題一次,第二個例子問一個問題很多次。在這種情況下,代碼的預期行為需要多次詢問問題,因為答案會隨著時間而變化。


查看完整回答
反對 回復 2022-06-17
  • 1 回答
  • 0 關注
  • 100 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號