我想在类别页面中隐藏某些类别的属性,例如21和24。我尝试了or语句,但我想它不在正确的位置,因为它忽略了两者:
<?php $category = Mage::getModel('catalog/layer')->getCurrentCategory();
if(($category->getId()!=21) || ($category->getId()!=24)) { ?>
<strong>Capacity:</strong> <?php
echo $_product->getCapacity();
?>
<br> <strong>Graduations:</strong> <?php
echo $_product->getGraduations();
}?>
有人能给我指正确的方向吗?
if(($category->getId()!=21) || ($category->getId()!=24)) {
让我们看看这里发生了什么:
如果ID为21,则"If子句"不会传递第一个表达式(false),但ID为!=24,因此它通过第二个(真)。由于PHP中的"||"不是"exclusive or",它会传递整个if(false或true=true),并且将打印您的属性。
如果ID是24,则子句的第一个通过(true),因此第二个完全忽略。(true或任何情况始终为true)-将打印属性。
这只是一个"逻辑"问题——你的一个"表达式"总是真的,因为一个数字不能同时是21和24,这会导致你的if子句跳过;)
解决方案提示:您想要的是在ID不是21 AND不是24 时显示属性