我有以下问题,我很难破译。我的文件分布如下:
/
|___control
| |___usuarios.php
|___vista
|___addUser.php
|___modelo
| |___conexion.php
|___index.php
发生以下情况,“addUser.php”和“index.php”文件都使用“usuarios.php”文件。文件“users.php”有一个require_once()
文件“connection.php”。
并且由于“addUser.php”和“index.php”在项目中的不同位置,_path_
添加在“usuarios.php”中的会产生冲突require_once()
。
知道如何解决吗?
就个人而言,为了避免问题,最好使用绝对路径。即使环境发生了变化(但保持相同的结构),它们也能更好地适应任何实现。
由于问题中未指定,因此我以这样的绝对路径为例:
/var/www/httpdocs
您描述的真实情况是addUser.php和index.php都使用users.php。
在这一点上,我们提出了三个选项:
选项 1 - 相对路径
它们是您正在使用的,除了某些情况外,它们通常会导致您遇到的问题。抛出找不到请求的文件的错误。
添加用户.php
索引.php
选项 2 - 带有文本的绝对路径
路径总是指向文件,无论它是从哪个级别包含的,只要结构没有改变。
这将解决您遇到的问题,但它的缺点是如果您更改为另一个环境,使用如下示例路径
/var/www/midominio
,则必须更改所有文件的所有路径。维护是一件乏味的事情。添加用户.php
索引.php
选项 3 - 使用预定义常量的绝对路径
我个人认为它是最推荐和易于维护的。如果您保留结构并更改环境,它可能会产生很少或不会产生错误。
该常量
__DIR__
返回使用它的文件所在目录的绝对路径。它返回父目录,dirname()
结合dirname(__DIR__)
起来它将返回使用它的文件所在的父目录的绝对路径。添加用户.php
索引.php
如果您发现错误,请发表评论,我会编辑
最简单的就是你需要的文件的地址是完整的,例如:for my server
和不: