H3 标签在 PHP 中的 foreach 循环中没有回显


h3 tag doesnt echo in foreach loop in php

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

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

它说"解析错误:语法错误,C:''xampp''htdocs'ews'ews.php中意外的'标题'(T_STRING(在第7行">

为什么它不起作用

$str.= '<h3>$value['title']</h3>';
用单引号

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

什么有效

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

另请参阅:htmlspecialchars()

试试这个它会起作用:

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

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

您将以未转义的单引号结束字符串。所以你的字符串只是

'<h3>$value['

然后出现了普通title。这导致了unexpected {string}.你要么必须转义你的引号

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

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

您将面临的另一个问题:单引号中的变量不计算。因此,您的回显结果将是:

$value['title']

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

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

其中{}是可选的。

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