use*_*278 0 php class path include
我有一个包括类的问题.这是一个解释问题的简单示例:
班级号 1(路径:/home/day/Class_A.php):
class Class_A {
public function sayHi() {
echo "Good day";
}
}
Run Code Online (Sandbox Code Playgroud)
班级号 2(路径:/home/test/Class_B.php):
class Class_B {
public function greeting() {
if(class_exists("Class_A")!=true)
include "../day/Class_A.php";
$test = new Class_A();
$test->sayHi();
}
}
Run Code Online (Sandbox Code Playgroud)
PHP文件(路径:/home/php.php)
if(class_exists("Class_B")!=true)
include "test/Class_B.php";
$g = new Class_B;
$g->greeting();
Run Code Online (Sandbox Code Playgroud)
问题是当php.php包含Class_B且Class_B包含Class_A时,Class_B无法打开Class_B,因为类的对象的路径现在与php.php文件相同.
我的问题是:有没有一种简单的方法来解决这个问题?
尝试改变:
include "../day/Class_A.php";
Run Code Online (Sandbox Code Playgroud)
至
include dirname(__FILE__) . '/../day/Class_A.php';
Run Code Online (Sandbox Code Playgroud)
这样,您的include将相对于正在执行include(Class_B)的文件.