我正在尝试动态输出页面标题。我正在使用induces,这个脚本正在使用header.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没有定义?
我做错了什么?
答案 0 :(得分:4)
在第一行中,您有
<?php $title ;
此$title ;
不应存在。
而且,正如Kailash Ahirwar已经提到的那样,为$title
提供默认值总是一个好主意:
switch($_SERVER['PHP_SELF']) {
[...]
default:
$title = "Default title goes here";
}
答案 1 :(得分:1)
尝试在$title
之前定义switch
:
$title = "";
答案 2 :(得分:1)
/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)值。
答案 3 :(得分:0)
代码看起来基本上很好,尽管你缺少一个“默认”块来捕获任何未被任何“case”语句捕获的内容。