博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP之PHP文件引用详解
阅读量:5278 次
发布时间:2019-06-14

本文共 1663 字,大约阅读时间需要 5 分钟。

HP的文件引用涉及到四个函数:

文件引用
文件引用

 

1.include()

2.include_once()
3.require()
4.require_once()
这四个函数常常会给PHP初学者造成困扰,总的来说困扰有这么几个:
1.四个函数的区别
2.这四个函数的适用环境
3.使用以上函数后造成的路径问题
下面我们就这三个典型的问题进行分析。
一、区别:
1.include_once()与require_once()在引入文件时,会检测该文件是否在之前已经被引入过,如果已经被引入过则直接返回TRUE。如果没有被引入过,则引入文件。而其他两个函数不会对文件是否被重复引入做出检测。
注意:在PHP 4中的 Windows 系统下是不区分大小写的。也就是说下面的代码都是引入的a.php。当然,PHP 5不会再出现这样的情况了。
include_once "a.php"; include_once "A.php";
2.include()与inclue_once()在引入文件失败时,只会产生警告信息,但是不会终止程序继续向下执行。
Warning:require(wrongFile.php)[function.require]: failed to open stream:No such file or directory in C:homewebsite est.php on line 5
而其他两个函数在文件引入失败时,会产生致命错误,并终止整个程序的运行。
Fatal error:require()[function.require]:Failed opening required 'wrongFile.php'(include_path='.;C:php5pear')in C:homewebsite est.php on line 5
二、使用环境
1. 由第二条实际上我们已经可以看出他们各自的使用环境了。include()适合用来引入普通文件(例如:视图模板),而require()适合用来引入核 心文件(例如:核心类文件)。因为前者引入的文件相对于整个程序系统来说重要性要低一些,所以就算出错也可以继续执行后面的程序。但是如果说一个系统或者 框架的核心文件都引入失败的话,那么程序还有继续运行下去的必要吗?
2.include_once()与require_once()实际上就是在第三条基础上对引入文件做了更严格的重复性检测而已。同样是前者一般性引入,后者重要引入。
三、路径
至 于相对路径问题,只要记住一个原则就可以了:加入A引入B,B同时又引入了C。那么,B中引入C的相对路径应该以A--C的相对路径来写。因为,PHP的 文件引入实际上就相当于将B的代码复制到A中,也就是说我们从头到尾都在A中执行代码,当然应该以A为参考来引入C了。
四、其他
1.我们还可以用include()来引用远程PHP文件,并且先这个被引用的文件传参,当然这有一定的先决条件。(详见官方手册)
include 'http://www.example.com/file.php?foo=1&bar=2';
2.注意:这几个函数不一定非得要在后面加括号
include('a.php'); include("a.php"); include 'a.php'; include "a.php";
以上的写法都是可以的。当然,如果后面的参数包含变量,你得斟酌一下。
OK,PHP文件引入就分析到这里。更多精彩内容敬请关注重庆PHP社区!

 

作者:
Angrybird
来源: 重庆PHP http://www.php-chongqing.com

原文地址: http://www.php-chongqing.com/index.php/article/15

重庆PHP原创,转载请保留版权信息
PHP之PHP文件引用详解

转载于:https://www.cnblogs.com/zcds-jk/p/4345270.html

你可能感兴趣的文章
【洛谷】P1313 计算系数(快速幂+杨辉三角)
查看>>
【BZOJ】1975 [Sdoi2010]魔法猪学院(A*)
查看>>
Django框架之ORM的相关操作(三)
查看>>
C++异常处理
查看>>
【Golang 接口自动化05】使用yml管理自动化用例
查看>>
windwos errorlevel变量获取XCOPY返回值,if判断失效处理
查看>>
ICMP
查看>>
Spark SQL概念学习系列之分布式SQL引擎
查看>>
Suricata的命令行解释
查看>>
Hadoop概念学习系列之再谈hadoop集群里的本地模式、伪分布模式和全分布模式(三十七)...
查看>>
PL/SQL中复制粘贴表结构信息
查看>>
Get和Post方法的异同
查看>>
【C编程基础】多线程编程
查看>>
GridSearchCV 与 RandomizedSearchCV 调参
查看>>
day3-mysql单表查询
查看>>
【Mac + Appium + Python3.6学习(三)】之IOS自动化测试环境配置
查看>>
推荐算法
查看>>
github
查看>>
敏捷软件开发与传统软件工程
查看>>
解决安全性异常的命令(给自己参考)
查看>>