2015-10-06 29 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

是啊感谢让我知道我做错了.. –