我一直在讨论这两个主题:
并且无法使我的脚本正常工作,所提供的方法都不起作用或者我做错了。
无论如何,这是我的问题出现的地方:
Root/ //this is root location for server
APP/ //this is root location for script
Root/APP/core/init.php //this is where I include classes and functions from
Root/APP/classes/some_class.php //this is where all classes are
Root/APP/functions/some_function.php //this is where all functions are
显然我需要在任何地方都包含init.php
,所以我在每个文件中都这样做了:
require_once 'core/init.php';
它一直在工作,直到我决定为这样的管理文件创建一个位置:
Root/APP/Admin/some_admin_file.php
当我以这种方式包含init时:
require_once '../core/init.php';
脚本无法打开函数,APP/Core/
文件夹中没有此类文件
所以我使用了上面主题中提到的DIR方法,甚至比发生的事情发生了,错误:
那是什么? :D我迷失了,有人可以帮忙;)APP / Core / classes / Admin /
中没有这样的文件
答案 0 :(得分:2)
包含路径相对于当前工作目录,可以使用getcwd()
检查;当项目变大时,这可能是许多问题的根源。
要使包含路径更稳定,您应该使用__DIR__
和__FILE__
魔术常量;例如,在您的特定情况下:
require_once dirname(__DIR__) . '/core/init.php';
dirname(__DIR__)
表达式实际上是当前正在运行的脚本的父目录。
顺便说一下,__DIR__
也可以写成dirname(__FILE__)
。