我是一名程序员,正在学习PHP,我似乎无法搜索,所以我希望这不是重复的。目前,这在header.php的第4行给了我一个错误,上面写着:意外$end
我知道它在抱怨语法,但我不完全理解文件是如何在运行时被解析、处理和执行的(因此产生了这个错误)。如果我错过了PHP的任何核心概念,如果有人能填补我的空缺,我将不胜感激,谢谢。
header.php
<?php
if(true){
echo "Helloworld";
?>
body.php
<?php
include('header.php');
echo "The great brown fox jumps over the lazy dog.";
include('footer.php');
?>
footer.php
<?php
}else{
echo "bye bye";
}
?>
包含的每个文件都必须能够在没有语法错误的情况下自行解析。您的标头有一个未关闭的if块的语法错误。同样,页脚也有一个else块的语法错误。你不能这样做。
相反,您可以使用以下内容:
// Global variable defined above includes:
$condition = TRUE;
include('header.php');
echo "The great brown fox jumps over the lazy dog.";
include('footer.php');
// header.php
if ($condition) {
echo "hello world";
}
// footer.php
if (!$condition) {
echo "bye";
}
此外,使用输出缓冲来获取内容比将原始html包含到代码流中要好得多。
<?php
function get_page_section($path){
if(file_exists($path)){
//grab "output" to the return variable
ob_start();
require($path);
$return = ob_get_contents();
ob_end_clean();
return $return;
}else{
//path not found
throw new Exception('get_page_section('.$path.') not found');
}
}
$header = get_page_section('header.php');
$footer = get_page_section('footer.php');
echo $header.
"The great brown fox jumps over the lazy dog.".
$footer;
?>
在header.php中键入以下代码
<?php
if(true){
echo "Helloworld";
}else{
echo "bye bye";
exit();
}
?>
在body.php中继续您在之前所写的内容
<?php
include('header.php');
echo "The great brown fox jumps over the lazy dog.";
这是解决这个问题的最简单的方法并希望这将有助于