Home  >  Article  >  Backend Development  >  require_once一个奇怪的现象,大伙儿看下

require_once一个奇怪的现象,大伙儿看下

WBOY
WBOYOriginal
2016-06-13 12:16:17903browse

require_once一个奇怪的现象,大家看下
本人在根目录的文件 require_once("test/1.php");  然后在1.php  require_once("2.php");
情况1、如果我我根目录存在2.php 程序会去引用根目录的2.php
情况2、如果我根目录不存在2.php ,程序还会去引用test目录的2.php 
不知道为什么会出现情况2的情况,大家有碰到吗,这是什么原因呢?
require_once 的时候不是以最开始的页面路径为主吗?



------解决思路----------------------
include(include_once、require、require_once)以执行的文件为基准
按 include_path 指示的路径查找文件
一般为 include_path = ".:/path1:/path2"(UNIX)或 include_path = ".;\path1;\path2"(WINDOW)
即以 .、/path1、/path2 .... 的顺序查找

所以查找的顺序是:被执行程序所在目录,被包含文件所在目录,其他 include_path 指定的目录

这样设计的好处在于:你可以改变原始项目的一些行为,而不必修改原始项目

index.php(require_once("test/1.php");)
test/1.php(require_once("2.php");)
test/2.php
2.php (这个 2.php 将替代 test/2.php)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn