Heim  >  Artikel  >  Backend-Entwicklung  >  require_once一个奇怪的现象,大家看下

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

WBOY
WBOYOriginal
2016-06-23 13:38:29941Durchsuche

本人在根目录的文件 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_path 的值。

http://www.iloveweb.com.cn/test.rar


这是测试文件,有兴趣的可以看下,给点意见,小弟也被弄晕了

如果感觉用相对路径比较晕的话,那就尝试用绝对路径,like: dirname(__FILE__)."/test/1.php" 

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)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn