0

我正在尝试在 php echo 语句中编写 html 代码,但我一直失败。

echo "<option value='$_GET['b']'>$_GET['b']</option>";

错误:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in .../web_info.php on line 11

我的意思是我什么时候应该使用“,什么时候使用'?规则是什么?这太令人困惑了。

4

7 回答 7

2

尝试这个:

echo "<option value='{$_GET['b']}'>{$_GET['b']}</option>";

问题出在引号和括号上。有时您需要将变量包装在花括号中,否则 PHP 解析器不知道何时开始和停止变量。它与字符串的其余部分混合在一起。

于 2013-11-06T15:59:59.970 回答
2

将变量包裹在花括号中:

echo "<option value='{$_GET['b']}'>{$_GET['b']}</option>";

或者,使用sprintf()

echo sprintf("<option value='%s'>%s</option>", $_GET['b'], $_GET['b']);
于 2013-11-06T16:00:12.330 回答
0

Simply you can write this (DEMO)

echo "<option value='$_GET[b]'>$_GET[b]</option>";

Or this (DEMO)

echo "<option value='" . $_GET['b'] . "'>" . $_GET['b'] . "</option>";

Read more on manual.

于 2013-11-06T16:01:50.380 回答
0
echo "<option value='".$_GET['b']."'>".$_GET['b']."</option>";

The problem is the single quote in the value attribute, you used to times and the parser cannot understand where is the end.

于 2013-11-06T16:02:26.317 回答
0
printf("<option value=\"%s\">%s</option>", $_GET['b'], $_GET['b']);
于 2013-11-06T16:54:52.547 回答
0

除了其他答案之外,一个鲜为人知的方法是使用逗号(因此 PHP 不必进行任何连接):

echo '<option value="', $_GET['b'], '">', $_GET['b'], '</option>';
于 2013-11-06T16:06:08.460 回答
0
echo("<option value='" . $_GET['b'] . "'>" .$_GET['b'] . "</option>");
于 2013-11-06T16:01:19.690 回答