PHP放入“;如果“;在标题中;否则”;在页脚中


PHP putting "if" in header and "else" in footer

我是一名程序员,正在学习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.";

这是解决这个问题的最简单的方法并希望这将有助于