2012-11-30 30 views
0

我試圖在foreach()聲明中設置變量,但它一直在死。爲什麼我無法在PHP中的foreach循環中設置變量?

如果我這樣做,一切都很好。

foreach($array as $key => $value) 
    { 
     echo '<tr>'; 
      echo '<td><a href="http://mgoode.com/index.php?option=com_mls&view=mls&mlsnum=' . $value['1'] . '">' . $value['1'] . '</a></td>'; 
     echo '</tr>'; 
    } 

但是當我這樣做,它不想工作。

foreach($array as $key => $value) 
    { 
     $mls = echo '' . $value['1'] . ''; 
     echo '<tr>'; 
      echo '<td><a href="http://mgoode.com/index.php?option=com_mls&view=mls&mlsnum=' $mls '">' $mls '</a></td>'; 
     echo '</tr>'; 
    } 

語法明智,我不明白這些陳述有什麼區別。我也試過$mls = $value['1'];,那也不想工作。

+0

echo是一種語言結構。它不會返回一個值。 '$ mls = $ value [1]'是你所需要的。 –

+0

如果你想確保它是一個字符串,使用'(string)$ value [1]'。查看我的答案以獲取更多詳細信息 – Martin

回答

2

當然,你有一個語法錯誤,抱怨第二種情況,對吧?如果你說「它一直在死」,你應該告訴我們什麼時候發生了什麼事情死亡。更多,應該讀取語法錯誤,並考慮它說什麼。錯誤是描述性的,所以你可以弄清楚什麼是錯的。

在第二種情況下,您並未將字符串與.運算符連接起來。

echo '<td><a href="http://mgoode.com/index.php?option=com_mls&view=mls&mlsnum=' $mls '">' $mls '</a></td>'; 

應該

echo '<td><a href="http://mgoode.com/index.php?option=com_mls&view=mls&mlsnum=' . $mls . '">' . $mls . '</a></td>'; 
+0

那麼句法對語法做了什麼? – Plummer

+1

「你沒有用。運算符連接字符串」意味着'''運算符將字符串連接在一起。 「連接」意味着連接到字符串。 「.'運算符」表示'.'是一個運算符,就像'+'是一個運算符來執行加法操作一樣,'='是一個運算符來分配值。 –

2
$mls = echo '' . $value['1'] . ''; 

應該

$mls = $value['1'] ; 
echo $mls; 

echo '<td><a href="http://mgoode.com/index.php?option=com_mls&view=mls&mlsnum=' $mls '">' $mls '</a></td>' 

應該是

echo '<td><a href="http://mgoode.com/index.php?option=com_mls&view=mls&mlsnum=' . $mls . '">' . $mls . '</a></td>'; 
0

你的第二個代碼塊應該看起來更像是這樣的:

foreach($array as $key => $value) 
{ 
    $mls = (string) $value['1']; 
    echo '<tr>'; 
    echo '<td><a href="http://mgoode.com/index.php?option=com_mls&amp;view=mls&mlsnumamp;=' , $mls , '">' , $mls , '</a></td>'; 
    echo '</tr>'; 
} 
  • 當你鍵入$var = echo "something"你是不是該變量指定的任何值。相反,您正在輸出該字符串 - echono return value
  • 你可以將你的變量typecast變成一個字符串而不需要附加和預先添加空字符串。
  • 您可以使用,little less overhead依次回顯多個字符串。
  • 即使它們屬於屬性值,也應該使用HTML實體作爲屬性的值
  • (最後)實際上並未將變量連接到第三個echo
相關問題