![PHP 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/705/27111705/b_27111705.jpg)
4.4 文件包含
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-T277_76.jpg?sign=1738912344-TgV3CWBt25JFhhJPGtKfLMx9Wo8jMhJr-0-652a7124487c2a8cb6d6627428e6ce6a)
在PHP中可能很多地方需要用到文件包含,文件包含是指将经常用到的部分代码分离出来,放在单独的一个文件中,在需要的页面中引入该文件。本节将介绍PHP中包含文件的4种语句,即include、require、include_once和require_once语句。
4.4.1 使用include和require包含文件
include与require功能类似,都是包含并运行指定文件。
【例4-13】(实例文件:ch04\Chap4.13.php)include和require包含文件实例。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P93_73928.jpg?sign=1738912344-43g1aDQybkdTm8yLaanPdHUkIoB4QqV3-0-9d8e30e8de1dd91b83056a975b5297f7)
a.php文件中的内容如下:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P93_73929.jpg?sign=1738912344-1wbREPC8Maufaovf8azPjYzKSxBacTww-0-ef40232583bb2745c47dafbfda0e6d4d)
在IE浏览器中运行结果如图4-22所示。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P93_12621.jpg?sign=1738912344-5gRL3dFHl0V4ZhejXkDymOH8qyKC4cfP-0-ccf28c8397ac23330520d05b261fdb84)
图4-22 include和require包含文件结果
注释:在例4-13中,分别使用include和require包含a.php文件,然后输出a.php文件中的变量$str1和$str2。
include与require虽然有类似的功能,但是有以下两点区别:
(1)使用include语句来包含文件时,如果包含的文件没有找到,include语句会输出警告,不会终止脚本的运行,而require语句则会输出致命错误,并且立即终止脚本的运行。
(2)require语句通常放在PHP脚本程序的最前面,include语句一般放在流程控制的处理区段中,PHP脚本文件读到include语句时,才将它包含的文件读进来。
【例4-14】(实例文件:ch04\Chap4.14.php)include和require不同之处实例。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P93_73930.jpg?sign=1738912344-0w18dvlSejxEwbqFOwoPRw923KzD2HS3-0-6fd9e4cf01623424b62a3478a72fbc46)
在IE浏览器中运行结果如图4-23所示。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P94_12697.jpg?sign=1738912344-h7625yVoyW2zw5Jq9OovYHvzPDRWYnV5-0-23122396097c36992b88bbaa4c21b339)
图4-23 include和require不同之处运行结果
从例4-14的结果可以看到,include包含不存在的文件时,是不会终止脚本运行的,而require会终止脚本运行。
4.4.2 使用include_once和require_once包含文件
include_once和require_once语句也是在脚本执行期间包含并运行指定文件,与include和require语句基本一样,唯一的区别是如果文件中已经包含了某个文件,include_once和require_once语句则不会再次包含该文件。所以,为了避免多次包含同一文件,可以用include_once语句或者require_once代替include和require语句。
【例4-15】(实例文件:ch04\Chap4.15.php)include_once和require_once语句实例。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P94_73932.jpg?sign=1738912344-JCVwkmkBja7HmJj5vPXNyyXyKbtlSu8o-0-61ff2abd1ef5920195913d76f7b1bf9d)
c.php文件中的内容如下:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P94_73933.jpg?sign=1738912344-P5Mh1dQzAlKDYZzWs7rvIAi7k4e6F61f-0-4c1e295f3e6ce8bc2dab913c4caa7c8b)
在IE浏览器中运行结果如图4-24所示。
注释:在例4-15中,首先使用include包含c.php文件两次,都在相应的位置输出了内容,然后使用include_once来包含c.php文件,由于已经包含了c.php文件,include_once不会重复包含c.php文件,所以不会输出内容。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P95_12780.jpg?sign=1738912344-0sJLc2sxFgBJQCUIojHJFuNZ4SdS0q66-0-bae212aff625b41a9bdeaf2d1adb9bd2)
图4-24 include_once和require_once语句运行结果