6.2.14 包含指定的文件到当前文件
最后这一小节要介绍两个比较重要的PHP语句——include()和require()。事实上,它们属于PHP流程控制方面的内容,之所以放在这里讲述,是因为它们涉及文件和函数的概念。
include()语句用来在当前文件中包含并运行指定文件。当一个文件被包含时,被包含文件中可用的任何变量、函数在被调用的文件中也都可用,所有在包含文件中定义的变量、函数或类都具有全局作用域。下面举一个简单例子说明include()的用法,首先创建如代码6-15所示的PHP程序。
代码6-15 一个定义了变量和函数的PHP程序6-15.php
01 <?php
02 define(PI,3.14);//定义了PI常量
03
04 $rad=100;
05 $str="include的用法";
06
07 function cal_area($radius)//计算面积的函数
08 {
09 $area=PI*$radius*$radius;
10 return$area;
11 }
12 ?>
【代码解析】6-15.php定义了一个常量PI、两个变量和一个函数,该PHP程序将被包含在另外一个PHP文件中,接下来就创建另外一个PHP程序,如代码6-16所示。
代码6-16 使用include()的PHP程序6-16.php
01 <?php
02 include("6-15.php");//包含进来指定的文件
03
04 echo$str;
05 echo"<br/>";
06 echo"<br/>";
07
08 $area=cal_area($rad);//调用文件中的函数
09 echo"在6-15.php中计算半径为".$rad."圆面积是:".$area;
10 ?>
【代码解析】代码6-16首先使用include()语句,将此前创建的文件6-15.php包含在当前程序6-16.php中。此时,在6-15.php中定义的变量、函数都将在6-16.php中生效,凡是在6-15.php中定义的变量、函数都可以在6-16.php中使用,但需要注意的是这些变量和函数作用域是全局的。执行6-16.php,如果一切正常,将看到如图6-17所示的结果。
从这个执行结果可以看出,在6-16.php中输出的变量$str是在6-15.php中定义的,它在6-16.php中正常输出。然后6-16.php调用在6-15.php中定义的函数cal_area()计算了圆的面积,并将结果输出到页面。
在PHP程序中,除了使用include()包含指定的文件之外,还可以使用语句require()包含指定的文件到当前文件中。这两种结构用法完全一样,不同之处是它们对错误的处理,include()产生一个警告而require()则会导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面,就要使用require()。而这种情况下使用include(),脚本会继续运行。
和include()、require()对应的还有另外两个用来包含指定文件的语句,它们是include_once()和require_once()。它们和include()、require()语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。它们的用法和include()语句的用法完全一样,这里不再重复举例。