如何在php中避开双引号/“它不起作用

如何在php中避开双引号/“它不起作用,php,html,syntax,double-quotes,backslash,Php,Html,Syntax,Double Quotes,Backslash,我花了数小时试图使此代码正常工作: <?php foreach ($stocks as $stock):?> <option value="<?= $stock(\"symbol\") ?>" > <?= $stock("symbol") ?></option> <?php endforeach ?> 运行此代码时,我收到一个错误: 分析错误:语法错误,意外的“symbol\?>” T_常量\u已装箱的\u字

我花了数小时试图使此代码正常工作:

<?php foreach ($stocks as $stock):?>
    <option value="<?= $stock(\"symbol\") ?>" > <?= $stock("symbol") ?></option>   
<?php endforeach ?>
运行此代码时,我收到一个错误:

分析错误:语法错误,意外的“symbol\?>” T_常量\u已装箱的\u字符串,中应为标识符T_字符串 /第7行的home/jharvard/vhosts/pset7/templates/sell_form.php


请帮助!

试试这个,只需更改您的报价:

<?php foreach ($stocks as $stock):?>
   <option value="<?= $stock('symbol'); ?>" > <?= $stock("symbol"); ?></option>   
<?php endforeach ?>
注意:未经测试的建议。

将其更改为:

<option value="<?= $stock("symbol") ?>" > <?= $stock("symbol") ?></option>
您正在转义不需要转义的引号

<?php foreach ($stocks as $stock):?>
<option value="<?= $stock("\"symbol\"") ?>" > <?= $stock("symbol") ?></option>   
<?php endforeach ?>

您可以使用单引号,也可以使用上述代码。

这里根本不需要转义引号。 \symbol\在此处被视为常量,但没有具有该名称的常量


周围的HTML引号仅由浏览器计算,对PHP解释器不起作用。PHP将只计算其中的内容,而忽略周围的内容,浏览器的HTML解析将永远看不到PHP代码中的引号,但只会生成$stocksymbol字符串,我不确定是什么您正在尝试这样做,但由于您使用了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>   

你根本不应该逃避那些引用…很好的观点,谢谢你的投入,但答案应该回答被问到的问题。因为这并不能直接回答问题,最好是作为一个评论。仅供将来参考…:没有足够的声誉发表评论,所以我不得不断言这是他想要的,霍普这会解决问题的。啊……我忘了声誉问题。明白了。