13)PHP,文件加载(include和require)
有四种文件加载的语法形式(注意,不是函数):
include, include_once, require, require_once;
他们的本质是一样的,都是用于加载/引入/包含/载入一个外部文件到当前php代码中来。
他们只在2个方面有细微区别:
,如果加载文件失败,则有不同的处理规则;include和require不同
,如果加载文件重复,则有不同的处理规则;XXX和XXX_once不同;
,他们都是语法结构,而非函数,使用形式可以有两种:
3.1 include ‘文件路径’;
3.2 include (‘文件路径’);
文件的路径问题:
相对路径:
就是以“./”, 或“../”,开头的路径。
./ 表示当前网页文件的所在位置(文件夹,目录);
../ 表示当前网页文件的所在位置的上一级位置(文件夹,目录)
这种相对位置对一个网站中的所有内容(包括php,html,图片,css,js文件)都有效。
绝对路径:
有2种绝对路径:
本地绝对路径:
window系统: c:/d1/d2/page3.php
unix系列系统: /d1/d2/page3.php
网络绝对路径: http://www.abc.com/d1/d2/page4.php
只有文件名(无路径)
在php的include语法(其他3个也一样)中,如果只给出文件名,而没有给出路径,则此时有其内部找到该文件的规则,如下:
1,首先在系统设置的include目录中查找:
在php.ini配置文件中,有:include_path设定:
可见默认无设定;
该设定其实可以设定多个目录,其间用分号分开;系统会按顺序依次找要载入的文件。
修改php.ini中的include_path为:
我们也可以在脚本中设定:
我们也可以使用另一个函数来获取当前的include_path的值:
2.上面没找到,在当前执行的网页文件所在目录(所谓当前工作目录)查找:
所谓当前网页文件,就是地址栏中显示的那个文件名。
3,上面还没找到,则在当前include命令所在文件的所在目录中查找:
如果一个文件(A)包含文件B,在文件B中又有include命令包含文件C,
此时B中的路径问题就可能发生这种情况。
总结:
- include_once 和include的区别:前者能够保证不会被重复加载
- require 和 include的区别:
- 如果被包含文件不,存在,即引用失败(出错)时,include发出警告并继续执行后续代码,require直接终止。
- require_once 和 require的区别:前者能够保证不会被重复加载
13)PHP,文件加载(include和require)的更多相关文章
- php基础知识(3)(文件加载include)
文件加载 综述: 有4个文件加载的语法形式(注意,不是函数): include, include_once, require, require_once; 他们的本质是一样的,都是用于加载/引入/ ...
- php文件加载、错误处理、方法函数和数组
数组运算符注意:php中,数组的元素的顺序,不是由下标(键名)决定的,而是完全由加入的顺序来决定.联合(+):将右边的数组项合并到左边数组的后面,得到一个新数组.如有重复键,则结果以左边的为准$v1 ...
- 文件加载---理解一个project的第一步
当我最开始写php的时候,总是担心这个问题:我在这儿new的一个class能加载到对应的类文件吗?毕竟一运行就报Fatal Error,什么**文件没找到,类无法实例化等等是一种很“低级”的错误,怕别 ...
- php基础语法(文件加载和错误)
文件加载 有4个文件加载的语法形式(注意,不是函数): include, include_once, require, require_once; 他们的本质是一样的,都是用于加载/引入/包含/载 ...
- 高性能javascript 文件加载阻塞
高性能javascript javascript脚本执行过程中会中断页面加载,直到脚本执行完毕,此操作阻塞了页面加载,造成性能问题. 脚本位置和加载顺序:如果将脚本放在head内,那么再脚本执行完 ...
- js文件加载优化
在js引擎部分,我们可以了解到,当渲染引擎解析到script标签时,会将控制权给JS引擎,如果script加载的是外部资源,则需要等待下载完后才能执行. 所以,在这里,我们可以对其进行很多优化工作. ...
- Android 的 so 文件加载机制
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 最近碰到一些 so 文件问题,顺便将相关知识点梳理一下. 提问 本文的结论是跟着 System.loadlibrary() 一层层源 ...
- ELF文件加载与动态链接(一)
关于ELF文件的详细介绍,推荐阅读: ELF文件格式分析 —— 滕启明.ELF文件由ELF头部.程序头部表.节区头部表以及节区4部分组成. 通过objdump工具和readelf工具,可以观察ELF文 ...
- QML从文件加载组件简单示例
QML从文件加载组件简单示例 文件目录列表: Project1.pro QT += quick CONFIG += c++ CONFIG += declarative_debug CONFIG += ...
随机推荐
- Promise 练习
import { ModelClass } from "engine/injector/Injector"; import { Inject } from "core/i ...
- 【LeetCode】N皇后I
[问题]n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案.每一种解法包含一个明确的 n 皇后问 ...
- Vulkan SDK 之 Descriptor Set Layouts and Pipeline Layouts
当我们有了一个uniform buff之后,vulkan 还不知道这个信息,需要通过descriptor进行描述. Descriptors and Descriptor Sets A descript ...
- Abstract抽象类 && Interface接口
# 抽象类 ## 将相同的但是不确定的动作提取出来,抽象化,抽象类的意义在于,在子类中进行实现. ## 抽象类可以被继承,子类继承抽象类时,需要对抽象方法进行完全实现. ## 抽象方法不能有方法体. ...
- PAT Advanced 1018 Public Bike Management (30) [Dijkstra算法 + DFS]
题目 There is a public bike service in Hangzhou City which provides great convenience to the tourists ...
- Condition接口及其主要实现类ConditionObject源码浅析
1.引子 任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait().wait(long timeout).notify()以及notifyAll() ...
- cf1208 E Let Them Slide(差分+RMQ\单调队列)
题意 如题目的图所示,每行都可以左右移动,但是数字不允许断开,且不许越界(宽度为w). 单独求每一列的最大的和为多少. 思路 对于每一列来说,在每一行上都有一个可以取到的区间, 所以,对于一列来说,答 ...
- dwz框架
官网:http://jui.org/index_menu.html PDF教程:http://jui.org/doc/dwz-user-guide.pdf DWZ最大的特点是使用html扩展的方式来代 ...
- POJ 3083:Children of the Candy Corn
Children of the Candy Corn Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11015 Acce ...
- 解决configure: error: C++ compiler cannot create executables问题
参考 yum install gcc gcc++ 呵呵,这样的话还是有组件没有安装完整的.再执行一下这个命令就可以解决问题. yum install gcc gcc-c++ gcc-g77