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