PHP基础04---文件包含

文件包含

​ 在一个PHP脚本中,去将另外一个文件(PHP)包含进来,合作去完成一件事情。

一、文件包含的作用

  1. 使用被包含文件中的内容,实现代码共享(重用):向上包含(索要)
  2. 自己有东西可以给别的文件使用,实现代码共享(重用):向下包含(给予)

向上包含:在当前脚本要用某个代码之前包含的文件(用别人的

向下包含:在自己有某个东西的时候,需要别的脚本来显示(自己代码写完之后包含其他文件) (给别人用

最大的作用为:分工协作,每个脚本做的事情不一样,因此可以通过协作,让多个脚本共同完成一件事情。

二、文件包含的四种形式

  • include : 包含文件
  • include once : 系统会自动判断文件包含过程中,是否被包含过(每个文件最多被包含一次
  • require : 与include相同
  • require once:与include once相同
基本写法:
	include '文件名';
	include ('文件名');//文件名字要能被系统找到(路径问题

##向上包含


//此文件名字为file1.php
<?php
	//被包含的文件
	$x = 10;
	define('gz',103);
?>

//此文件名为file2.php
<?php
    include 'file1.php'; //调用与file2.php在同一路径下的file1.php
	echo $x , gz;
?>

//这里运行file2.php会有结果


##向下包含


//此文件名字为file3.php
<?php
	//被包含的文件
	$x = 10;
	define('gz',103);
	include_once 'file4.php';
?>

//此文件名为file4.php
<table>
    <tr>
        <td><?php echo $x;?></td>
        <td><?php echo gz;?></td>
   	</tr>
</table>

//这里运行file3.php会有结果。

感觉用法不是很难懂,不作过多解释。

三、文件加载原理

  1. 在文件加载(include/require)的时候,系统会自动将被包含文件中的代码相当于嵌入到当前文件中
  2. 加载位置在文件的调用位置。(inluce/require的位置
  3. PHP中被包含的文件是单独进行编译的。

PHP文件在编译过程中如果有语法错误,就不会执行。

对于第三点的解释:但是被包含文件中有错的时候,系统会在执行到include所在语句的时候才会报错。(这个时候会执行include之前的语句。

四、include与require的区别

4.1include与include_once的区别

​ include:系统碰到一次就会执行一次;同一文件加载几次就执行几次

​ include_once:不管加载几次,只执行一次

4.2include与require的区别

​ 本质上都是包含文件,唯一区别在于包含不到文件的时候,报错的形式不一样

include 包含不存在的文件的时候,虽然会报错,还会执行下面的语句。

require 使用时如果出错,后面的代码不会执行

五、文件加载路径

​ 文件在加载的时候需要指定文件路径才能保证PHP正确的找到对应的文件。

5.1 绝对路径

  • 从磁盘的根目录开始(本地绝对路径) Windows:盘符:C/路径/PHP文件、Linux:/路径/PHP文件
  • 从网站根目录开始(网站角度路径) / : 相对于网站主机名字对应的路径。 eg:localhost/index.php --> E:/server/apache/htdocs/index.php

5.2相对路径

​ 从当前文件夹所在目录开始的路径

./:表示当前文件夹、../:上级目录(当前文件夹的上一次文件夹)

<?php
	//简单相对路径加载
	include'file.php';
	include'./file.php';
	//复杂相对路径加载
	include'../htdocs/file.php';

	//绝对路径
	include'E:/.../.../.../file.php';

5.3绝对路径与相对路径的区别

  1. 绝对路径的效率相对较低,但是绝对安全 (路径不会出错
  2. 相对路径的效率相对较高,但是容易出错 (相对路径可能会出错

六、文件嵌套包含

​ 一个文件包含另外一个文件,这个被包含的文件又包含另一个文件。

​ 嵌套包含的时候很容易出现相对路径出错的问题:相对路径会因为文件的包含而改变。

​ 原因:windows下面的每一个文件夹都有.和//的文件

个人认为:比较不难搞的用相对路径,如果比较复杂的就用绝对路径。(建议熟读./../的含义。

举例: (其中./表示的当前文件夹是会变的。

文件包含嵌套出错.PNG
原文地址:https://www.cnblogs.com/seintf/p/14160809.html