h3标签在php中的foreach循环中不会回显

时间:2014-12-18 05:45:44

标签: php

function news5($newsarray) {
    $str = '';
    foreach($newsarray as $value) {
    $str.= '<h3>$value['title']</h3>';}
    return $str;
}
echo news5($newsarray);

$ newsarray是一个二维数组,我想在h3中显示每个子数组的第一个值,但它不起作用,没有h3标记一切都很好,但我希望它在h3中。请帮助!

它说&#34;解析错误:语法错误,意外&#39;标题&#39; (T_STRING)在第7行和第34行的C:\ xampp \ htdocs \ news \ news.php中;

5 个答案:

答案 0 :(得分:5)

为什么它不起作用

$str.= '<h3>$value['title']</h3>';

用单引号括起来的字符串不评估变量引用,如documentation中所述;你还没有正确地打开和关闭单引号,导致解析错误;双引号或concatenation可以解决这个问题,但您还需要记住,必须正确转义值才能在HTML中使用。

什么有效

$str .= '<h3>' . htmlspecialchars($value['title'], ENT_QUOTES, 'UTF-8') . '</h3>';

另请参阅:htmlspecialchars()

答案 1 :(得分:-1)

试试这个会起作用:

function news5($newsarray) {
    $str = '';
    foreach($newsarray as $value)
 {
    $str.= "<h3>".$value['title']."</h3>"; 
}
    return $str;
}
echo news5($newsarray);

某些字符在HTML中具有特殊意义,如果要保留其含义,则应由HTML实体表示。此函数返回一个包含这些转换的字符串。如果您需要翻译具有关联命名实体的所有输入子字符串,请改用htmlentities()

答案 2 :(得分:-2)

您正在使用未转义的单引号结束字符串。所以你的字符串就是

'<h3>$value['

然后出现普通title。这导致了unexpected {string}。你要么必须逃避你的报价

'<h3>$value[\'title\']</h3>'

或在语句的一部分中使用不同的(双)引号 - 数组键或周围的引号。

您将面临的另一个问题:单引号中的变量无法评估。所以你的回应结果将是:

$value['title']

这不是你想要的(你想要那个数组的内容):

$str .= "<h3>{$value['title']}</h3>";

{}是可选的。

答案 3 :(得分:-2)

使用此功能可能有助"<h3>$value['val']</h3>"

答案 4 :(得分:-2)

$str .= '<h3>';
$str .= $value['title'];
$str .= '</h3>';