我插入一个foreach()
语句,它可以动态地显示年份值到被调用的函数中,但它会一直给出错误...
这是我正在做的事情的摘录
$display->content( 'The heading
<select name="Year" id="Year">'.
foreach(range(date("Y",2013) as $value){
echo "<option value=\"$value\">$value</option>\n";
}
.'</select> The script ends'
);
这是我执行时遇到的错误Parse error: syntax error, unexpected 'foreach' (T_FOREACH) in /var/www/test.php on line 140
。请任何帮助处理这一点表示赞赏。谢谢。
答案 0 :(得分:3)
您的代码在语法上无效。以下应该有效。
$options = "";
foreach(range(date("Y",2013)) as $value)
{
$options .= '<option value="'.$value.'">$value</option>';
}
$display->content( 'The heading
<select name="Year" id="Year">'.
$options
.'</select> The script ends'
);
答案 1 :(得分:1)
foreach
是一个语句,即它是程序的一部分,不返回任何值。 PHP编译器通过告诉您在连接运算符foreach
之后没有期望.
关键字来抱怨这一点,这需要另一个字符串添加到前一个字符串。
您可能希望将循环移出函数调用并将字符串汇总到变量中,如下所示:
// assemble the content first
$c = 'The heading <select name="Year" id="Year">';
foreach (range(date("Y",2013)) as $value) {
$c .= "<option value=\"$value\">$value</option>\n";
}
$c .= '</select> The script ends';
// then call your function
$display->content($c);
请注意,这是与Scala等函数式语言的主要区别之一,其中几乎所有函数都具有正确的返回类型 - 即使是for或if语句。