怎么做magento的条件?

时间:2012-03-19 04:03:52

标签: php magento

有一些代码:

    <div class="test">
        <div class="upsell-tags"> 
     <?php echo $this->getChildHtml('product_additional_data') ?>
     <?php echo $this->getChildHtml('upsell_products') ?>
        </div>
    </div>

我想在<div class="test">之前添加if条件。我该怎么办?谢谢。 当我添加以下代码时,它显示我的错误。为什么呢?

<?php if(isset($this->getChildHtml('upsell_products'))):?>.....


    <?php endif;?>

2 个答案:

答案 0 :(得分:3)

来自PHP文档:

  

警告

     

isset()仅适用于变量,因为传递任何其他内容都会导致解析错误。要检查是否设置了常量,请使用defined()函数。

您正在传递函数的返回值,这不是有效用途。你需要做一些像

这样的事情
$upsell = $this->getChildHtml('upsell_products');
if($upsell) {
    // ...
}

答案 1 :(得分:2)

如果查看magento代码,函数getChildHtml将返回一个字符串。

/**
 * Retrieve child block HTML
 *
 * @param   string $name
 * @param   boolean $useCache
 * @param   boolean $sorted
 * @return  string
 */
public function getChildHtml($name = '', $useCache = true, $sorted = false)

如果你看起来多一点,看起来如果没有任何东西可以渲染,函数会返回一个空字符串。所以我只是在没有任何条件的情况下显示返回的html。如果你真的需要知道是否有什么东西,我会这样做:if($ this-&gt; getChildHtml($ name)!='')