Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 定义我自己的基本路径与设置包含路径?_Php_Set Include Path - Fatal编程技术网

Php 定义我自己的基本路径与设置包含路径?

Php 定义我自己的基本路径与设置包含路径?,php,set-include-path,Php,Set Include Path,我了解了函数集_include_path()。一直以来,我在config.php文件中定义了一个常量 define('BASE_PATH', '/var/www/mywebsite/public_html/'); 在所有后续的php文件中,我会像这样 include(BASE_PATH.'header.php'); include(BASE_PATH.'class/cls.data_access_object.php'); 常量方法与集合包含路径方法相比有什么优势,反之亦然?常量方法过时了吗

我了解了函数集_include_path()。一直以来,我在config.php文件中定义了一个常量

define('BASE_PATH', '/var/www/mywebsite/public_html/');
在所有后续的php文件中,我会像这样

include(BASE_PATH.'header.php');
include(BASE_PATH.'class/cls.data_access_object.php');
常量方法与集合包含路径方法相比有什么优势,反之亦然?常量方法过时了吗?

使用set_include_path()(或ini_set('include_path',…)可以指定包含库代码的多个文件夹。例如,如果您的应用程序依赖于各种不同的框架/库,例如PEAR和Zend FW,那么您可能会遇到如下情况:

ini_集('include_path','/usr/local/php/pear:/usr/local/php/zendfw')

这种方法的缺点是,它将使用它首先找到的任何文件;如果在多个include路径中有一个名为“Mailer.php”的文件,它将包含它找到的第一个文件,如果不是您的意图,则会导致细微的错误。好的代码组织通常可以解决这个问题。另外,include_path通过realpath缓存(),有时需要根据您的设置对其进行调整以获得更好的性能

两种方法都可以,但是使用define()方法更显式


FWIW,我通常使用ini_集('include_path',…)

我认为米卡赫尔的解释很清楚

我建议您在将所有PHP文件存储在文件夹中时使用“set_include_path”,例如:“libs/”(更简单)。 显式指定文件路径时,使用define()方法应该更快

除非确实需要,否则请始终避免使用绝对路径。 我发现这样指定路径非常有用:

define("BASE_PATH", dirname(__FILE__));

这样,您将避免每次移动代码时都必须更新路径。

太好了!我几天前也听说了dirname()的事