PHP,如何设置包含路径

mus*_*sme 11 php path include

我一直在写:

include('a.php')
include('b.php')
Run Code Online (Sandbox Code Playgroud)

在我的脚本中包括使用函数a()b().这变得非常繁琐.有没有办法设置目录的路径,并且脚本可以访问多个文件?

  1. 我在我的脚本中试过这个:

    set_include_path('.;C:\xampp\htdocs\myfunctionfolder');
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我设置了一个环境变量PATH,以便在那里使用它.

  3. 我也修改了php.ini来包含

    include_path = ".;\xampp\php\PEAR;\xampp\htdocs\myfunctionfolder"
    
    Run Code Online (Sandbox Code Playgroud)

如果我有很多文件,如何访问这些文件而不必单独包含这些文件?设置环境变量肯定在命令提示符下有效.

我是否需要为.php文件执行其他操作以便在目录下集中访问?

Bra*_*tie 12

通常的做法是使用包含include/ include_oncecalls(为简单起见)的"common.php"或"includes.php"文件.例如

  • [LIB]
    • a.php只会
    • b.php
    • includes.php
  • 的index.php

然后includes.php包含:

<?php
  include_once('a.php');
  include_once('b.php');
?>
Run Code Online (Sandbox Code Playgroud)

然后在任何脚本中都包含includes.php文件.

但是,要回答原始问题,每次调用一次只能包含一个文件.您可以使用类似opendirreaddir所有文件遍历在一个特定的目录,并把它们作为发现(自动化,即讲)或写出来的每一个包括你自己根据你所创建的文件.

此外,设置包含路径的所有操作都设置了一个目录,以便在进行include调用时查看.它不是一个自动加载文件的目录(这是我从你的帖子中得到的印象).


Pau*_*lRe 6

设置include_path将不包括该目录中的每个文件,它只将该目录添加到PHP将在包含文件时搜索的列表中.

指定require(),include(),fopen(),file(),readfile()和file_get_contents()函数查找文件的目录列表.

资源

这将简化包含深层结构中文件或文件系统完全不同部分的文件.

include('/var/somewhere/else/foo.php');
Run Code Online (Sandbox Code Playgroud)

随着/var/somewhere/else/添加到php.ini include_path可能成为

include('foo.php');
Run Code Online (Sandbox Code Playgroud)

此外,正如其他人所指出的,有一些常见的做法,但您可以查看OOPHP和自动加载类.这不适用于我所知道的功能.

许多开发人员编写面向对象的应用程序会创建一个每个类定义的PHP源文件.其中一个最大的烦恼是必须在每个脚本的开头写一个需要包含的长列表(每个类一个).

在PHP 5中,不再需要这样做.您可以定义一个__autoload函数,如果您尝试使用尚未定义的类/接口,则会自动调用该函数.通过调用此函数,在PHP失败并出现错误之前,脚本引擎将获得加载类的最后机会.