PHP学习之文件包含

PHP学习之文件包含

定义与产生

在项目实践中,有很多的代码需要重复调用,这是只要将需要重复调用的代码写在一个文件当中,重复调用这个文件就好。

分类

动态、静态:输入内容用户是否可控

远程、本地:文件源在哪里

向上、向下:被包含文件是作为文件源,还是输出通道

主要函数

include :包含并执行文件

include_once 与include相同,区别在于会自动判断是否某个文件,一个文件只包含一次

require

require_once

require 、require_once 与include、include_once 的区别在于两者的报错程度不同,include只是提出警告,前者则是会停止运行。

include 与 include_once

inlcude 加载一次执行一次

once是指执行一次

文件路径的先后顺序

1、指定的文件路径

2、include_path

3、脚本所在路径

4、当前的工作路径

包含的基本语法

1、include’’;

2、include(’’); //注意文件路径问题,文件要能够被找得到。

实操——基本包含

被包含文件
在这里插入图片描述

包含文件

在这里插入图片描述

输出

在这里插入图片描述

实操——向下包含

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-898TmiaG-1613382250008)(PHP学习之文件包含.assets/1613369333759.png)]

第一次没有成功,应该是变量重复定义的原因

文件加载原理

1、将被包含文件的代码嵌入包含文件中

2、位置是包含文件中的include等函数的位置,等同于替换掉他们

3、在php文件中,被包含文件的单独编译的

单独编译举例

PHP是解释性语言,所以当代码有错误是便不再执行,但当只有被包含文件错误时,代码会执行到include这一语句才停止。

虽然是单独编译,但是空间也是在包含文件的空间内。

PHP代码执行流程

1、读取代码文件(PHP代码)

2、将其编译成字节码(opcode)

3、zendengine来解析opcode,按照字节码来进行逻辑运算

4、 将其转换成html

实操——报错(被包含文件单独编译)

这里是主文件有错误,整个代码都不执行(define 没有分号)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bKjrEhaI-1613382250010)(PHP学习之文件包含.assets/1613370124397.png)]

在这里插入图片描述

主文件仍然在运行,只有被包含文件没有运行。

//在进行代码实操的时候要注意PHP的版本,有时版本也会产生一些奇奇怪怪的问题。

实操——include与include_once

在这里插入图片描述

在这里插入图片描述

当换成include_once 后就没有重复定义的提醒了

实操—— include 与 require

在这里插入图片描述

include是warning

同时根据报错可以看到,a没有定义变量,可以为include继续运行提供实例

在这里插入图片描述

而,require是fatal error

实操——文件加载路径

相对路径

在这里插入图片描述

默认是当前路径,可以找到被包含文件

在这里插入图片描述

当前目录也可以找到PHP文件

在这里插入图片描述

…/的应用

绝对路径

在这里插入图片描述

绝对路径下寻找PHP文件

嵌套包含

首先,在www.文件夹下新建了father文件夹,在father文件夹下新建了,include.php 与son1.php

在这里插入图片描述

同目录包含

在这里插入图片描述

两级嵌套

在这里插入图片描述

目前,已经出现了问题,没有找到待包含文件

在这里插入图片描述

因为路径的问题,最多在当前和脚本所在目录寻找,所以找不到子目录的son1.php,又因为可以在当前工作目录查找,所以include不用前面建文件夹的名称

三级嵌套

在这里插入图片描述

同样出现问题了

在这里插入图片描述

)]

因为路径的问题,最多在当前和脚本所在目录寻找,所以找不到子目录的son1.php,又因为可以在当前工作目录查找,所以include不用前面建文件夹的名称

三级嵌套

在这里插入图片描述

同样出现问题了

在这里插入图片描述

修改方法如二级嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值