using php __DIR__


using php __DIR__

我正在尝试创建一个config.php文件,该文件定义一个全局变量,该变量包含名为"projectfiles"的目录的路径。其思想是,任何文件都可以指向该目录,而不管它在文件树中的位置如何。

我可以使用__DIR__吗?有人愿意给我举一个例子说明这是如何运作的吗?我在想以下内容:

我想在这里定义一个目录:在/config.php文件中

$projectfiles = __DIR__("projectfiles/")

然后我想要一个库文件能够在/venders/library/generalfunctions.php文件中使用这个变量

include("../../../config.php");
$file = $projectfiles/testfile.php

建议?

__DIR__当然是您想要的。使用它可以为所需文件提供相对路径。我强烈建议对所有库文件使用require_onceinclude_once

if( !defined( __DIR__ ) ) define( __DIR__, dirname(__FILE__) );
require_once( __DIR__ . '/../../../config.php');
.
.
.
// you code here

使用第一行可以确保您在使用PHP5.2及更高版本时不会遇到麻烦。这将允许您包含基于目录结构的文件,而不是相对于调用的脚本。许多框架使用dirname(__FILE__),但是运行多次是相当浪费的。最好只是在某个地方加一张支票。

这个应用程序的体系结构似乎不是最佳的,但在不了解更多信息的情况下,我无法对此发表评论。。

我建议将它定义为一个常量,这样它就不会被更改,并且无论范围如何都是可用的。

define('PROJECTFILES',__DIR__.'/projectfiles/');

假设:
/config.php
/项目文件/include_me.php

include(PROJECTFILES.'include_me.php');

请记住,__DIR__将引用config.php所在的目录。如果config.phpprojectfiles的父文件夹,则上述操作将起作用。