2012-02-08 32 views
1

我是一名程序員,我正在撿起PHP,我似乎無法搜索到這個,所以我希望這不是重複的。目前這是給我一個在header.php第4行上的錯誤,其中說: 意外的$結束PHP將「if」放在頁眉中,「else」放在頁腳中

我知道它抱怨的語法,但我不完全瞭解如何解析文件處理和得到執行在運行時(因此創建此錯誤)。如果有人錯過了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"; 
} 
?> 
+2

其快速棕色狐狸 – Rooster 2012-02-08 03:21:44

+0

和在現實世界中你的 做什麼?假設的問題得到假設的答案! – 2012-02-08 03:21:57

+0

@JohnB確實!我感覺有什麼不對勁,當我輸入那個笑聲 – Gapton 2012-02-08 03:39:32

回答

3

每個文件包含必須能夠依靠自己的力量進行解析沒有語法錯誤。你的頭文件有一個未封閉的語法錯誤,如果塊。同樣,頁腳有一個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"; 
} 
+0

但是在一個單一文件中,我確實可以有一個if-else子句,跨越多個,對吧?所以,如果一切都在一個文件中,但不是三個(使用include),這將工作? – Gapton 2012-02-08 03:41:55

+1

@Gapton是的,你可以打開一個'if()',經過很多'',然後關閉'else',只要它在一個文件中工作。 – 2012-02-08 03:43:18

0

而且使用輸出拋光搶內容是更好的方式然後就包括原材料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; 

?> 
0
中的header.php類型

在body.php下面的代碼

<?php 
if(true){ 
    echo "Helloworld"; 
}else{ 
    echo "bye bye"; 
    exit(); 
    } 
?> 

繼續爲您

<?php 
include('header.php'); 

echo "The great brown fox jumps over the lazy dog."; 

這是可以解決萬阿英,蔣達清最簡單的方法以前寫 並希望這會有所幫助