[英]Why isn't printf() in PHP working when I use double quotation marks?
[英]How to escape double quotation marks in php? /" is not working
我花了几个小时试图使此代码正常工作:
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock(\"symbol\") ?>" > <?= $stock("symbol") ?></option>
<?php endforeach ?>
运行此代码时出现错误:
解析错误:语法错误,意外的'“ symbol \\”)?>“'(T_CONSTANT_ENCAPSED_STRING),期望/home/jharvard/vhosts/pset7/templates/sell_form.php中的标识符(T_STRING)
请帮忙!
更改为:
<option value="<?= $stock("symbol") ?>" > <?= $stock("symbol") ?></option>
您正在转义不需要转义的引号。
尝试此操作,只需更改引号即可:
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock('symbol'); ?>" > <?= $stock("symbol"); ?></option>
<?php endforeach ?>
注意:未经测试的建议。
这里根本不需要转义引号。 \\“符号\\”在这里被视为常量,但是该名称没有常量。
周围的HTML引号仅由浏览器评估,并且对PHP解释器不起作用。 PHP将仅评估内部内容,而忽略周围的内容,并且浏览器的HTML解析将永远不会在PHP代码中看到引号,而只会显示结果字符串$ stock(“ symbol”)
我不确定您要做什么,但是由于您使用了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>
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock("\"symbol\"") ?>" > <?= $stock("symbol") ?></option>
<?php endforeach ?>
您可以使用单引号,也可以使用上面的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.