2015-10-06 50 views
0

我有兩個php文件第一個是sample.php第二個是if.php。我有一些代碼寫在sample.php基本上聲明瞭兩個變量和一個else聲明。我在if.php文件中有if聲明,我在else聲明之前包含了該聲明。但是在運行我的代碼時,它顯示錯誤:(如果)聲明不工作時,從另一個PHP文件包括它

Unexpected 'else'...etc.

你能幫我弄清楚代碼有什麼問題嗎?

Sample.php

<?php 
$a=10; 
$b=20; 

include 'if.php'; 
else 
{ 
echo $b.' is greater'; 
} 
?> 

if.php

<?php 
if($a>$b) 
{ 
echo $a.' is greater'; 
} 
?> 
+0

我相當肯定你不能像這樣執行一個if/else邏輯。另外,爲什麼?爲什麼不直接用if來寫if句呢? – Epodax

+0

@Epodax他在下半場顯示了他的if.php代碼。 – amanpurohit

+0

if.php是正確的在我的問題的底部..我不知道我是否可以做到這一點或不能..但如果我必須? –

回答

2
include 'if.php'; 
else 

尼斯,有沒有這樣的東西作爲includeelse。即使您的包含文件末尾有if子句,include行也會中斷其順序。

else只能在ifelse if塊之後出現,沒有第三個選項。期。

這裏是PHP解析器會怎麼看你的2個文件

if($a>$b){ 
    echo $a.' is greater'; 
} 
include "if.php"; 
else { 
    echo 'na'; 
} 

這顯然是無效的。

如果你仍然想保持原樣,就像你在評論中提到的一樣。你可以做1個小竅門(在許多其他方法中)。使您的else另一個if這是違反第一個if。像

if.php

if($a>$b){ 
    echo $a.' is greater'; 
} 

主文件

include "if.php"; 
if($a<=$b) { 
    echo 'na'; 
} 
+0

實際上,我有兩個PHP文件首先建立連接到一個SQL數據庫,並檢查連接是否成功建立,所以我的if語句是在另一個文件和主文件中,我有另一種說法 –

+0

像你說我不能做這對我來說是一個更好的主意,可以將我的if和else語句保留在單個php文件中 –

+0

ok請參閱編輯 –

1

的包括(或需要)聲明接受所有的文本/代碼/標記存在指定的文件中和將其複製到使用include語句的文件中。

當您想在網站的多個頁面上包含相同的PHP,HTML或文本時,包含文件非常有用。

include和require語句是相同的,只是在失敗:

  • 要求會產生一個致命錯誤(E_COMPILE_ERROR)和停止腳本
  • 包括只會產生一個警告(E_WARNING)和該腳本將繼續。

因此,如果您希望執行繼續並向用戶顯示輸出,即使包含文件丟失,也可以使用include語句。否則,對於FrameWork,CMS或複雜的PHP應用程序編碼,始終使用require語句將密鑰文件包含到執行流程中。這有助於避免損害應用程序的安全性和完整性,以防萬一一個密鑰文件意外丟失。

包含文件可以節省大量工作。這意味着您可以爲所有網頁創建標準頁眉,頁腳或菜單文件。然後,在需要更新標題時,只能更新標題包含文件。

footer.php

<?php 
echo "<p>Copyright &copy; 1999-" . date("Y") . " W3Schools.com</p>"; 
?> 

的index.php

<!DOCTYPE html> 
<html> 
<body> 

<h1>Welcome to my home page!</h1> 
<p>Some text.</p> 
<p>Some more text.</p> 
<?php include 'footer.php';?> 

</body> 
</html> 

Live Preview

源從PHP 5 Include Files

所以,你的代碼看起來像這樣

if($a>$b) 
{ 
    echo $a.' is greater'; 
} 
include "if.php"; 
else 
{ 
    echo 'na'; 
} 

只要它完全錯誤的。

+0

哈哈我在w3school上閱讀它,但不幸的是沒有解決我的問題 –

+0

cz它的錯誤。這就是你得到錯誤 –

+0

是啊感謝讓我知道我做錯了.. –