为什么我无法在PHP中的foreach循环中设置变量?

时间:2012-11-30 15:33:23

标签: 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'];,但也不想工作。

3 个答案:

答案 0 :(得分: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>';

答案 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>';

答案 2 :(得分: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"时,您没有为该变量分配任何值。而是输出该字符串 - echo具有no return value
  • 您可以将typecast变量放入字符串而不附加并添加空字符串。
  • 您可以使用,使用little less overhead一个接一个地回显多个字符串。
  • 你应该为你的&符号使用HTML实体,即使它们属于属性的值
  • (最后)您实际上并未将变量连接到第三个echo