一、php文件包含,include,require
Include和require都是用于进行文件 的包含,只是遇到错误的时候处理的方式不一样。
可以被包含的文件是什么类型的?
只要是文本类型的文件,原则上都可以被包含。.php .html .inc .txt。只要是文本的,且符合html或php语法的,都可以。
包含文件名
可以是带绝对路径的文件 名
也可以是带相对路径的文件 名
还可以直接是一个文件 名
绝对路径包含位置确定,但是名字较长
相对路径比较简单,但是和脚本文件的执行和存放目录有关。
提示:在浏览器方式下,只需要考虑访问文件存放位置
而在命令行下,就有执行位置的相对目录的问题了
结论:包含文件都应该使用绝对路径方式标明其位置
使用定义的根路径常量后的写法
另外一个查对的方式
Include ‘b.php’;
前面的绝对或相对路径写法,都能够确定包含文件的位置
这种写法会相对于执行或当前脚本文件的路径去找包含文件 。但是它在设置了include_path参数后,会先去include_path优先去找!
查找顺序:
- 先去include_path
- 去执行目录中找
- 才对脚本文件存放的目录中找
有部分网站,会把一些有用的公共文件统一 放到一个include_path中,然后你可以直接包含,不用写路径!
从效率上讲,应该直接使用绝对路径的方式。相对 的方式效率会比较差。
二、Inlcude和require的区别
它们同样都是包含,语法上没有区别。但是在包含文件找不到时
Include会报一个警告错误,继续执行程序
Reqiure会报一个严重错误,程序终止
结论:
如果包含文件 是很重要的内容,应该使用require
如果是一个不太重要的包含文件 ,可以使用include
三、Include和include_once
Include_once同样是包含文件的功能,和include处理错误的方式也是一样的。
但是多了一个判断文件是否已经 被包含过的功能。
用途:可以避免重复包含
总结:
带once功能强一些,可以避免重复包含,但是效率会低。
建议,自己来处理重复的问题,尽量直接使用include
Require和require_once与上面的类似,只是处理错误的方式是报错停止程序。
四、Return在文件包含中的使用
如果在包含文件中,代码执行到return,将会从包含文件中返回,它下面的代码不会再被执行。
Return和exit的区别
Return 只是从包含文件返回,会继续在主文件中向下执行代码
Exit虽然是在包含文件中,但是如果执行到exit将会终止所有文件代码的执行
使用return从包含文件返回数据
五、包含文件时的HTML模式和PHP模式
表面上看,包含文件时,就是把被包含文件的内容引入到主文件
但实际上,即使两个文件都是PHP文件,也会在主文件执行到include时
- 退出PHP模式,进入了HTML模式
- 打开包含文件,逐句执行,如果发现<?php标记,就会退出HTML模式,进入PHP模式
直到发现?>结束标记,会又退出PHP模式,进入HTML模式
- 如果被包含文件只有开始标记,没有结束标记,会在文件末尾退出PHP模式,进入HTML模式
- 返回到主文件后,会退出HTML模式,重新返回到PHP模式
六、路径分隔符和目录分隔符
介绍两个预定义常量
PATH_SEPARATOR 用于分隔路径字符串
DIRECTORY_SEPARATOR 用于分隔目录
由于windows和linux下它的路径字符串分隔符不一样
Windows使用;
Linux使用:
如我们设置include_path时,通常这么写
目录分隔符
我是小咖,一个正在前往大神之路的小咖。
发个邀请:
如果你正好想学习php,可以与我一起交流,我的VX:feilueze333。下面资料免费赠送。