我正在尝试动态输出页面标题。我正在使用诱导,这个脚本在标头中.php目标是使用 case/switch 语句动态输出标头。这是我的代码:
<?php $title ;
switch($_SERVER['PHP_SELF']) {
case '/index.php':
$title = 'Home';
break;
case '/about.php':
$title = 'About';
break;
case '/services.php':
$title = 'Services';
break;
case '/portfolio.php':
$title = 'Portfolio';
break;
case '/staff.php':
$title = 'Staff';
break;
case '/contact.php':
$title = 'Contact us';
break;
} ?> <title><?php echo $title ?></title>
我收到一个错误,告诉我我的变量$title没有定义?
我做错了什么?
在你的第一行,你有
<?php $title ;
这个$title ;
不应该存在。
而且,正如Kailash Ahirwar已经提到的,为您的$title
提供一个默认值总是一个好主意:
switch($_SERVER['PHP_SELF']) {
[...]
default:
$title = "Default title goes here";
}
尝试在switch
之前定义$title
:
$title = "";
在 $_SERVER 全局数组中,$_SERVER[PHP_SELF] 包含文件的完整路径,例如
/project_name/index.php 或/project_name/about.php 或/project_name/services.php
这里project_name是项目的名称。
取代
case '/index.php'
case '/about.php'
case '/services.php'
....
自
case '/project_name/index.php'
case '/project_name/about.php'
case '/project_name/services.php'
.....
并在 PHP 文件的开头初始化$title。
<?php $title = "";
switch ($_SERVER['PHP_SELF']) {
case '/project_name/index.php':
$title = 'Home';
break;
case '/project_name/about.php':
$title = 'About';
break;
case '/project_name/services.php':
$title = 'Services';
break;
case '/project_name/portfolio.php':
$title = 'Portfolio';
break;
case '/project_name/staff.php':
$title = 'Staff';
break;
case '/project_name/contact.php':
$title = 'Contact us';
break;
}
?>
用于测试目的
print_r($_SERVER);
并检查价值 _SERVER(PHP_SELF) 美元。
代码看起来基本不错,尽管您缺少一个"默认"块来捕获任何未被任何"case"语句捕获的内容。
虽然是PHP的初学者,但我自己解决了这个问题,它非常简单和合乎逻辑,将标题视为字符串,它最初是空的,写在顶部$title = ";当在包含后在主页中包含标题时,写下标题的值(重新分配变量的值)