我试图看到不同页面的不同标题
在header.php中,我检查文件名以设置正确的标题,如
<?php
$page = basename($_SERVER['PHP_SELF']);
if ($page == 'index.php'): ?>
<title>Home page</title>
<?php elseif($page == 'price.php'): ?>
<title>Price page</title>
<?php elseif($page == 'areas.php'): ?>
<title>Areas page</title>
<?php endif; ?>
仅对于<?php elseif($page == 'price.php'): ?>
不起作用,我的意思是它由于某种原因没有打印标题标签,文件名price.php是正确的。如果我在<?php elseif($page == 'price.php'): ?>
中打印echo $page
,它会显示价格.php
问题出在哪里?
在php8中引入match
表达式比其他条件下更有效、更优雅。。。我希望这能简化您的代码并解决问题。
<?php
$page = match(basename($_SERVER['PHP_SELF'])) {
'index.php' => 'Home page',
'price.php' => 'Price page',
'areas.php' => 'Areas page',
default => 'Unknown page'
};
?>
<title><?=$page?></title>
作为一种替代语法,您可以使用:
<?php
$title = '';
switch (basename($_SERVER['PHP_SELF'])) {
case ('index.php') : $title = 'Home page'; break;
case ('price.php') : $title = 'Price page'; break;
case ('areas.php') : $title = 'Areas page'; break;
}
echo '<title>'.$title.'</title>';
?>