栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用PHP将class ='active'添加到html菜单

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用PHP将class ='active'添加到html菜单

您的index.php代码正确。我将在下面包含common.php的更新代码,然后我将解释它们之间的区别。

<?php      $class = ($page == 'one') ? '' : '';     $nav = <<<EOD        <div id="nav"> <ul>    <li><a $class href="index.php">Tab1</a>/</li>    <li><a href="two.php">Tab2</a></li>    <li><a href="three.php">Tab3</a></li></ul>        </div> EOD; ?>

第一个问题是,您需要确保heredoc的结束声明

EOD;
-根本没有缩进。如果缩进,则会出现错误。

至于您的PHP代码未在heredoc语句中运行的问题,那是因为您看错了。使用heredoc语句与关闭PHP标记不同。因此,您无需尝试重​​新打开它们。那对您无济于事。Heredoc语法的工作方式是,打开和关闭之间的所有内容均按所显示的完全一样,但变量除外。这些将替换为关联的值。我从heredoc中删除了您的逻辑,并使用一个三级函数来确定该类,以使其更易于查看(尽管我不相信任何逻辑语句仍然可以在heredoc中使用)

要了解Heredoc语法,它与在双引号(“)中包含它相同,但是不需要转义。因此,您的代码也可以这样编写:

<?php      $class = ($page == 'one') ? '' : '';     $nav = "<div id="nav"> <ul>    <li><a $class href="index.php">Tab1</a>/</li>    <li><a href="two.php">Tab2</a></li>    <li><a href="three.php">Tab3</a></li></ul>        </div>"; ?>

它将做完全相同的事情,只是编写方式有所不同。Heredoc和字符串之间的另一个区别是,您可以在中间无法进入Heredoc的字符串中跳出。使用此逻辑,可以生成以下代码:

<?php      $nav = "<div id="nav"> <ul>    <li><a ".(($page == 'one') ? '' : '')." href="index.php">Tab1</a>/</li>    <li><a href="two.php">Tab2</a></li>    <li><a href="three.php">Tab3</a></li></ul>        </div>"; ?>

然后,您可以像最初想要的那样直接在字符串中包含逻辑。

无论选择哪种方法,脚本的性能差异都很小(如果有的话)。它主要归结为偏好。无论哪种方式,您都需要确保了解它们的工作原理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号