(如果)语句在从另一个php文件中包含它时不起作用

时间:2015-10-06 06:28:00

标签: php if-statement include

我有两个php文件,第一个是sample.php,第二个是if.php。我有一些用sample.php编写的代码基本上声明了两个变量和一个else语句。我在if文件中有if.php语句,我在else语句之前包含了该语句。但在运行我的代码时,它显示错误:

  

意外'其他' ......等等。

你能帮我弄清楚代码有什么问题吗?

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';
}
?>

2 个答案:

答案 0 :(得分:2)

include 'if.php';
else

很好,没有include else这样的事情。即使您在包含文件的末尾有if子句,include行也会破坏其序列。

else只能在ifelse if块之后,没有第三个选项。周期。

以下是PHP解析器将如何查看您的2个文件

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

这显然无效。

如果您仍想保持原样,就像您在评论中提到的那样。你可以做一个小技巧(在许多其他方法中)。让else另一个if与第一个if相反。像

<强> if.php

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

主文件

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

答案 1 :(得分:1)

include(或require)语句获取指定文件中存在的所有文本/代码/标记,并将其复制到使用include语句的文件中。

当您想在网站的多个页面上包含相同的PHP,HTML或文本时,包含文件非常有用。

include和require语句完全相同,但失败时除外:

  • require将产生致命错误(E_COMPILE_ERROR)并停止脚本
  • include只会产生警告(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';
}

简直完全错误。