Исходный код
<div id="navLine">
<? if(isset($title5)) { ?>
<a href="index.php">Главная</a> »
<a href="index.php?page=<?=$link?>"><?=htmlspecialchars($title)?></a> »
<a href="index.php?page=<?=$link2?>"><?=htmlspecialchars($title2)?></a> »
<a href="index.php?page=<?=$link3?>#"><?=htmlspecialchars($title3)?></a> »
<a href="index.php?page=<?=$link4?>"><?=htmlspecialchars($title4)?></a>
<? } elseif(isset($title4)) { ?>
<a href="index.php">Главная</a> »
<a href="index.php?page=<?=$link?>"><?=htmlspecialchars($title)?></a> »
<a href="index.php?page=<?=$link2?>"><?=htmlspecialchars($title2)?></a> »
<a href="index.php?page=<?=$link3?>"><?=htmlspecialchars($title3)?></a>
<? } elseif(isset($title3)) { ?>
<a href="index.php">Главная</a> »
<a href="index.php?page=<?=$link?>"><?=htmlspecialchars($title)?></a> »
<a href="index.php?page=<?=$link2?>"><?=htmlspecialchars($title2)?></a>
<? } elseif(isset($title2)) { ?>
<a href="index.php">Главная</a> »
<a href="index.php?page=<?=$link?>"><?=htmlspecialchars($title)?></a>
<? } else { ?>
<a href="index.php">Главная</a>
<? } ?>
</div>
Что не так в исходном коде
Здесь легко видеть дублирование реализации: зачем-то много раз повторяется вывод одних и тех же строк — это ни к чему.
Также не очень понятна логика, когда проверяется наличие переменной, но после проверки она сама не используется (внутри ветки if(isset($title5))
не упоминается переменная $title5
). Подозреваю, что в этой неиспользуемой переменной содержится заголовок страницы. Это плохо, так как заголовок содержится каждый раз в разной переменной от $title
до $title5
.
Для вывода каждого элемента хлебных крошек используется совершенно идентичный код. При наличии однородностей правильнее пользоваться массивами, а не разрозненными переменными.
Как устранить дублирование кода
<div id="navLine">
<a href="index.php">Главная</a><?php
foreach ($breadcrumbs as $b_link => $b_title) {
?> » <a href="index.php?page=<?= $b_link ?>"><?= htmlspecialchars($b_title) ?></a><?php
}
?></div>