【发布时间】:2012-07-30 20:50:22
【问题描述】:
我对包含课程有疑问。下面是一个简单的例子来解释这个问题:
班级编号1(路径:/home/day/Class_A.php):
class Class_A {
public function sayHi() {
echo "Good day";
}
}
班级编号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();
}
}
PHP 文件(路径:/home/php.php)
if(class_exists("Class_B")!=true)
include "test/Class_B.php";
$g = new Class_B;
$g->greeting();
问题是当php.php包含Class_B而Class_B包含Class_A时,Class_B无法打开Class_B,因为类的对象路径现在与php.php文件相同。
我的问题是: 有没有好的简单的方法来解决这个问题?
【问题讨论】:
-
将类存储在可以添加到包含路径的目录下。使用 require_once 并使路径(在 require_once 构造中)相对于添加到类的包含路径的路径。