0

这是我的代码:

echo '<select  name=\"sv_07\">';   
$vars = array(
'Year' => 'Year'
'-2012' => '2012', 
'-2011' => '2011', 
'-2010' => '2010', 
'-2009' => '2009', 
'-2008' => '2008', 
'-2007' => '2007', 
'-2006' => '2006', 
'-2005' => '2005', 
'Pre 2005' => 'Pre 2005', 
);

foreach($vars as $val => $name){
if($_SESSION['sv_07'] == $val){
    echo '<option value="' . substr($val, 0, 1) . '" selected>' . $name . '</option>';
} else {
    echo '<option value="' . substr($val, 0, 1) . '">' . $name . '</option>';
}
}

echo '</select></div>';

如您所见,我正在尝试使用 PHP 来回显表单的标签,然后回显两组 HTML 中的一组 - 如果值与先前提交给会话的值匹配,则另一组用于所有其他 HTML。

它不起作用,但是我找不到错误。

我尝试在http://ideone.com调试它并收到错误消息:

**解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,在第 16 行的 /home/4seOiK/prog.php 中需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

第 16 行:

 if($_SESSION['sv_07'] == $val){

我尝试了一些手动调试并将 if 要求更改为类似

如果(1>2)

并且错误消失了,但是我一生都无法看到我的语法有什么问题

谁能看到我哪里出错了?谢谢。

4

2 回答 2

2

后面缺少逗号'Year' => 'Year'

于 2012-07-09T23:08:25.437 回答
0

我不确定您是否可以用破折号开始数组键(即使它们是字符串)。

于 2012-07-09T23:12:42.523 回答