简单的PHP开关案例更改输出...我做错了什么?

时间:2014-06-12 08:39:36

标签: php joomla switch-statement

主要问题: 交换机内部的回声输出是否与其自身不同?

-

我认为这不是什么太复杂,但它确实给我带来了一些麻烦!

从简单的事情开始,我能够像这样展示Joomla全文图像:

<img src="<?php echo htmlspecialchars($images->image_fulltext); ?>" />

然后,我想扩展它,并为图像添加一个灯箱,这变成了:

<a href="<?php echo htmlspecialchars($images->image_fulltext); ?>" data-lightbox="image">
    <img src="<?php echo htmlspecialchars($images->image_fulltext); ?>" />
</a>

灯箱工作正常。

但是,我只希望这个灯箱适用于某些菜单ID(我有多种语言的新闻部分,因此只想在查看某些pageID时应用超链接)。

我决定做一个转换(很简单!)

<?php
$app = JFactory::getApplication();
$menuID = $app->getMenu()->getActive()->id;

switch ($menuID) {
    case '168':
    case '231':
        echo
        "<a href='".htmlspecialchars($images->image_fulltext)."' data-lightbox='image'>
        <img src='".htmlspecialchars($images->image_fulltext)."' />
        </a>";
    break;

    default:
        echo
        "<img src='".htmlspecialchars($images->image_fulltext)."' />";
    break;
}
?>

问题是交换机正在改变src的输出。

开关外: /armouredshielding/images/news-events/website-screenshot.jpg

内部切换: images / news-events / website-screenshot.jpg

肯定这不是交换机的工作方式吗?它仍然使用echo命令,因此输出应该完全相同?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我更喜欢这样的东西:

$pagesToLight = array (168,231);

if(in_array($menuID, $pagesToLight)){
      echo "<a href='".htmlspecialchars($images->image_fulltext)."' data-lightbox='image'>
      <img src='".htmlspecialchars($images->image_fulltext)."' />
      </a>";
} else {
       echo "<img src='".htmlspecialchars($images->image_fulltext)."' />";
}