文件加载
综述:
4种文件加载的语法关键字:include、include_once(如名称所示,相同文件只能加载一次)、require、require_once(与前者相似)。作用:加载外部文件到当前PHP代码中来
文件路径问题:(三种情况)
1,相对路径:就是以 “./” 或 “../” 开头的路径
- “./”表示当前网页文件所在位置(文件夹,目录)
- “../”表示当前网页文件的所在位置的上一级位置(文件夹,目录)
2,绝对路径
- 本地绝对路径:Windows系统:c:/d1/d2/page.php;Unix系统:/d1/d2page.php.
- 网络绝对路径:http://www.abc.com/d1/page.php(注意,该文件是在原来服务器执行之后再放过来)
3,无路径(只有文件名)
在PHP的include语法中,如果只给出文件名而无路径,有内部寻找文件的规则
在php.ini配置文件中,有include_path设定
可见默认无设定(修改后对所有该服务器上文件生效)
该设定可以设定多个目录,其间用分号分开,‘.’表示当前目录,系统按顺序依次寻找相应文件;修改php.ini中的include_path为:
即可扩展目录
也可以在脚本中设定:(修改后只对该文件生效)
也可使用另一个更好的办法设定路径
针对于特殊情况:当前网页文件A中include文件B,而且当前网页文件B中include文件C,在只有文件C名而无路径时,现在网页文件A对应目录下查找,再在网页文件B对应目录下查找
- 首先在系统设置的include目录查找
- 如果上面没找到,在当前执行的网页文件(当前工作目录)所在目录中查找
- 如果没找到,则在include命令所在文件的所在目录中查找
文件载入过程
- 从include语句处退出PHP脚本模式(进入HTML代码模式)
- 载入include语句所设定的文件中的代码并执行之(如同在当前文件中一样)
- 退出HTML模式重新进入PHP脚本模式,继续之后的代码
举例:include_yuanli.php中代码:
page3.PHP中代码:
执行include_yuanli.php相当于执行以下代码:
结果为:
各种关键字的区别:
- include和include_once的区别:后者能够保证不会被重复加载
- require和include的区别:如果被包含文件不存在即引用出错,include发出警告并继续执行,require停止脚本
- require和require_once的区别:后者能够保证不会被重复加载
return关键字
以前只在函数中出现,作用是结束函数并可以返回数据;在PHP被包含载入的文件中return关键字的作用相同
return没有返回值:
include_return.php中代码
page4.php中代码:
结果为:
结果表明page4.php文件执行到return就结束
return具有返回值:
include_return.php中代码:
page4.php中代码为:
结果为: