Php 和 Html 回显中的代码

Php and Html code within echo

我正在编写一个 if 语句,其中一个按钮需要在购物车为空时显示。 对于此按钮,我需要获取 data-url 产品的表单密钥 所以像这样:

<a href="#" data-url="checkout/cart/add/product/59/form_key/<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>/" class="btn btn-success">Order</a>

如上所述,我需要将此按钮包装在 if 语句中,因此如下所示:

 <?php
    $_helper = Mage::helper('checkout/cart');
    if (1 > $_helper->getItemsCount()){
        echo '<a href="#" data-url="checkout/cart/add/product/59/form_key/<?php echo Mage::getSingleton(\'core/session\')->getFormKey(); ?>/" class="btn btn-success">Order</a>';
    }
    else{
        '<p>hello</p>';
    }
 ?>

但显然我不能在 echo 中包含 php echo。任何人都可以指出正确的方向吗?

别再打开 PHP 了。您可以在 echo 中终止 HTML 解释。

您的代码应如下所示:

<?php
    $_helper = Mage::helper('checkout/cart');
    if (1 > $_helper->getItemsCount()) {
    echo '<a href="#" data-url="checkout/cart/add/product/59/form_key/'.Mage::getSingleton(\'core/session\')->getFormKey().'/" class="btn btn-success">Order</a>';
    }
    else {
        '<p>hello</p>';
    }
    ?>

您可以只使用字符串连接:

echo '<a href="#" data-url=".../' . Mage::getSingleton(...) . '"' ...

你不要把 PHP 放在 HTML 里面 PHP 里面。由于您已经在 PHP 代码的上下文中,只需将您想要的值连接到输出:

echo '<a href="#" data-url="checkout/cart/add/product/59/form_key/' . Mage::getSingleton('core/session')->getFormKey() . '" class="btn btn-success">Order</a>';

结果输出始终只是一个字符串。您可以简单地使用您拥有的任何值构建该字符串。