php⽂件包含的四种⽅式分别是,5.PHP⽂件包含
思考:PHP的函数要求是函数必须在内存中才能调⽤,但是函数是⼀个⼀个写在对应的PHP⽂件中的,那其他⽂件中的代码必须要复制代码过来才能访问吗?
引⼊:如果⼀个⽂件中对应的功能已经写好了,那么想要在其他PHP⽂件中使⽤,必须要保证该⽂件中的代码都进⼊到内存,⽽且彼此间有关联才可。这个使⽤PHP提供了⼀种解决⽅案,就是⽂件包含。
⽂件包含【掌握】
定义:⽂件包含,就是在⼀个要运⾏的PHP脚本中,去将另外⼀个PHP脚本中的代码拿过来,并且可以使⽤其被包含的⽂件⾥的内容,或者说将⾃⼰的内容能够在另外⼀个被包含的⽂件中使⽤。
1.⽂件包含基本语法:PHP中提供了四种⽂件包含的⽅法,分别是include和include_once,require和require_once,其中四种⽅式的⽤法完全⼀样
include/include_once/require/equire_once '⽂件所在路径及⽂件名';
include/include_once/require/equire_once('⽂件所在路径及⽂件名');
//⽂件包含
include 'index.php'; //包含index.php⽂件(当前PHP⽂件同级⽬录)
?>
2.⽂件包含的意义:⽂件包含的⽬的有两个
向上包含:即先包含某个⽂件,⽬的为了使⽤某个⽂件中的代码或者数据(使⽤公共代码)
index.php
//定义函数
function show(){
echo 'hello world';
}
?>
include.phpphp如何运行代码
/
/包含index.php⽂件
include_once 'index.php';
//调⽤index.php中的函数
show(); //输出hello world
?>
向下包含:即先写好代码,后包含⽂件,⽬的是为了在被包含⽂件中使⽤当前的数据(使⽤已产⽣数据)
index.php
//获取数据
$info = 'hello world';
//包含⽂件
include_once 'include.php';
include.php
echo $info; //输出hello world
?>
3.⽂件包含的语法区别:四种包含⽅式都能够包含⽂件并使⽤
include和require的区别在于,如果包含的⽂件不存在的时候,include只是报警告错误,⽽不影响⾃⾝代码执⾏;⽽require会报致命错误,⽽且中断代码执⾏
include和include_once区别:include不论如何都会执⾏包含操作,⽽include_once会记录是否已经包含过对应⽂件,对同⼀⽂件多次包含只操作⼀次(对于函数/类这种结构不允许重复的,是个好⽅法)。
4.⽂件包含原理:⽂件包含本质就是将被包含⽂件的所有代码,在进⾏包含操作那⼀⾏全部引⼊并运⾏。但是⽂件包含语句是在运⾏时才会执⾏,因此不能先访问被包含⽂件中的内容,后包含⽂件。
index.php
function show(){
echo __FUNCTION__;
}
?>
include.php
show(); //错误:系统不到函数
//引⼊
include_once 'index.php';
show(); //show:正确,先引⼊后使⽤
?>
5.练习:在a.php⽂件中写好九九乘法表函数,在b.php中包含该⽂件,然后在c⽂件中显⽰九九乘法表。即b包含a也包含c
总结:⽂件包含是⼀种真正意义上⽅便我们进⾏模块化开发(代码功能分开到不同的⽂件中使⽤函数进⾏管理维护),同时⼜可以实现代码复⽤的功能。能够帮助开发者节省⼤量时间和⼯作量。
思考:⽂件包含的时候是如何到被包含的⽂件的呢?难道所有的开发⽂件都要放到⼀起吗?
引⼊:实际开发中,⾮常⼩型的项⽬有可能所有⽂件放到⼀起,但是⼤中型项⽬动辄成百上千个⽂件,不可能放到⼀起的。⽽且还要⾯临⽤户本地开发与实际部署到服务器的路径不同的问题。所以在⽂件包含的时候⼀定要注意路径问题。
路径问题【掌握】
定义:路径问题,是指PHP在⽂件包含的时候,采⽤什么样的⽅式去寻⽂件的问题。在系统中,路径通常分为两种:绝对路径和相对路径。
1.绝对路径:绝对路径包含两种,⼀种是本地绝对路径,还有⼀种是互联⽹绝对路径
本地绝对路径:从盘符根⽬录到⽂件的路径。Windows下是逻辑盘符如D:/server/Web/index.php;⽽Linux下是根⽬录
如/home/Web/index.php
D:/server/Web/index.php
function show(){
echo __FUNCTION__;
?>
D:/server/Web/include.php
include_once 'D:/server/Web/index.php'; //绝对路径包含
?>
2.相对路径:即被包含⽂件相对于当前⽂件所在的路径,通常有三种:
./:表⽰同级⽬录(当前⽂件所属⽂件夹),每个⽂件夹下都有“.”⽂件,代表当前⽬录
../:表⽰上级⽬录(当前⽂件所属⽂件夹的上级⽂件夹),每个⽂件夹下都有“..”⽂件,表⽰上级⽬录
什么都没有:就是表⽰同级⽬录。区别./在于./会⾃动匹配任意⽬录下的.⽂件夹,⽽什么都没有则只会从⾃⾝⽂件所在⽬录开始(⽐./安全) D:/server/Web/index.php
function show(){
echo __FUNCTION__;
}
?>
D:/server/Web/include.php
include_once 'index.php'; //相对路径包含
include_once './index.php'; //相对路径包含
?>
3.绝对路径和相对路径的区别
相对路径效率⾼:相对路径只要按照当前⽂件位置偏移寻即可
相对路径不安全:相对路径⼀旦嵌套,./这个当前⽬录就会发⽣改变
绝对路径安全:不会因为嵌套⽽出现路径变化
绝对路径效率低:因为⼀定会要从根⽬录开始逐层寻
4.相对路径的嵌套包含问题:相对路径./和../会因为⽂件被包含之后发⽣改变(被不同⽂件夹的包含,同⼀⽂件夹下不会发⽣改变)
D:/server/Web/parent/son/son.php
echo __DIR__,'son';
?>
D:/server/Web/parent/parent.php
echo __DIR__,'parent';
include_once './son/son.php'; //包含son.php
//此时,单独访问parent.php没有问题
?>
D:/server/Web/index.php
include_once './parent/parent.php';
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论