require_once dirname(__FILE__) ...的目的是啥?

Posted

技术标签:

【中文标题】require_once dirname(__FILE__) ...的目的是啥?【英文标题】:what is the purpose of require_once dirname(__FILE__) ...?require_once dirname(__FILE__) ...的目的是什么? 【发布时间】:2014-02-04 13:33:29 【问题描述】:

我正在使用具有以下代码的 php 库:require_once dirname(__FILE__) . '/config.php';

根据我的阅读,dirname(__FILE__) 指向当前目录。

那么写require_once 'config.php';不是更容易吗?

我在这里唯一的猜测是包含dirname(__FILE__) 确保require_once 函数使用绝对路径而不是相对路径。

【问题讨论】:

这就是原因 - 它确保了绝对路径。其他脚本可以使用chdir() 更改工作目录,这可能会混淆包含路径。同样,如果从 HTTP 以外的东西(例如 CLI 或 cron)调用,则包含路径可能不同,或者工作目录可能不同。 可以改用__DIR__... 显然__DIR__ 可从 php 5.3 及更高版本获得。来源:1、2 【参考方案1】:

是的,你是对的 - dirname(__FILE__) 确保 require_once 函数使用绝对路径而不是相对路径。

__FILE__ 常量代表正在运行的脚本。它将返回运行脚本的完整路径和文件名。

例如,如果一个名为database.init.php 的脚本包含在文件系统的任何位置,它想要包含位于同一目录中的脚本database.class.php,您可以使用:

require_once dirname(__FILE__) . '/database.class.php'; 

【讨论】:

【参考方案2】:

一个例子:

如果您的文件包含在某处,则默认情况下它将从包含您的文件的路径开始搜索。在这种情况下,require 不适用于您文件旁边的文件

【讨论】:

以上是关于require_once dirname(__FILE__) ...的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章

php语言:require_once(dirname(__FILE__)."/./config_uc.php");讲解

phpexce 表格上传与下载

WordPress wp-load.php

PHP规范小技巧,来自网络(整理,自得)

高级类/接口自动加载PHP5.3方式

备份Oracle 数据库。