2012-11-30 80 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
相关问题