【发布时间】:2020-06-19 02:55:36
【问题描述】:
我对 PHP 很陌生。问题陈述是,我需要在特定页面的导航中插入一个 CSS 类。这是我现在的方式:
<nav class="navbar navbar-expand-md navbar-light fixed-top scrolling-navbar
<?php if (basename($_SERVER['PHP_SELF']) === 'index.php' || basename($_SERVER['PHP_SELF']) === 'shop.php' || basename($_SERVER['PHP_SELF']) === 'news.php') { echo "navbar-transparent"; } ?>
">
它有效,但感觉很乱。我将继续研究它(也许 switch 语句更好?)。有没有更清洁的方法?
【问题讨论】:
-
我会将
navbar-transparent分配给一个变量,然后在class列表中输出。那会更干净一些,并使用in_array。 -
@user3783243 为了构建这种方法,您实际上可以定义一个类数组并输出它们。如果您有多个条件类,这可能特别有用。例如:
$classes=["navbar", "navbar-expand-md", ... ]class="<?= htmlentities(implode(' ', $classes)) ?>" -
@akenion - 你能再挑逗一下吗?我看到了它的发展方向,但希望获得更多信息。
-
@SteveShead 当然。这确实是一个简单的概念,我在各种场合都使用过,并且可以与复杂的条件类一起很好地工作(并且更容易阅读)。我会在另一个答案中写出来。
标签: php class if-statement insert switch-statement