我花了好几个小时试图让这段代码起作用:
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock(\"symbol\") ?>" > <?= $stock("symbol") ?></option>
<?php endforeach ?>
运行此代码时出现错误:
解析错误:语法错误,意外&#39;&#34;符号\&#34;)?&gt;&#34;&#39; (T_CONSTANT_ENCAPSED_STRING),期待标识符(T_STRING) 第7行/home/jharvard/vhosts/pset7/templates/sell_form.php
请帮忙!
答案 0 :(得分:3)
将其更改为:
<option value="<?= $stock("symbol") ?>" > <?= $stock("symbol") ?></option>
您正在逃避不需要转义的引号。
答案 1 :(得分:2)
试试这个,只需更改报价:
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock('symbol'); ?>" > <?= $stock("symbol"); ?></option>
<?php endforeach ?>
注意:未经测试的建议。
答案 2 :(得分:1)
这里根本没有必要逃避引号。 \“symbol \”在这里被视为常量,但该名称没有常量。
周围的HTML引号仅由浏览器评估,并且不对PHP解释器起任何作用。 PHP只会评估内部的东西并忽略周围的内容,浏览器的HTML解析将永远不会在PHP代码中看到引号,而只会看到$ stock(“symbol”)的结果字符串
答案 3 :(得分:1)
我不确定您要尝试做什么,但由于您使用了foreach
,我猜测这是一个多维数组。
试试这个:
<?php
$stocks = array(
array(
"symbol" => "value2"
),
array(
"symbol" => "value2"
)
);
?>
<select>
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock["symbol"] ?>"> <?= $stock["symbol"] ?></option>
<?php endforeach ?>
</select>
修改:如果您希望显示屏有双引号,请使用以下命令:
<option value="<?= $stock["symbol"] ?>">"<?= $stock["symbol"] ?>"</option>
答案 4 :(得分:0)
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock("\"symbol\"") ?>" > <?= $stock("symbol") ?></option>
<?php endforeach ?>
您可以使用单引号或使用上面的代码。