Class' SubClass'未找到

时间:2014-04-03 20:28:11

标签: php oop

我遇到了PHP的对象继承问题:

我有两个文件,baseclass.php和subclass.php,以便

//baseclass.php
<?php
echo "In baseclass.php\n";

class BaseClass {
  function __construct () {
    echo "In BaseClass constructor\n";
    $this->id = "NOT IMPLEMENTED";
  }
}

//subclass.php
<?php
require_once("PATH/baseclass.php");
echo "In subclass.php\n";

$elt = new SubClass();
echo $elt->id;

class SubClass extends BaseClass {
  function __construct () {
    echo "In the SubClass constructor\n";
    parent::__constructor();
  }
}

我的预期结果是:

In baseclass
In subclass
In BaseClass constructor
In the SubClass constructor
NOT IMPLEMENTED

然而,我得到的是

In baseclass
In subclass
Fatal error: Class 'SubClass' not found in (...) on line 6

使用要求或包括产生相同的结果。 话虽如此,如果我将BaseClass和SubClass放在同一个文件中,结果就像预期的那样。这会让我相信在PHP中你不能扩展在另一个文件夹中定义的类,这看起来很奇怪。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

首先需要定义类然后调用它:

class SubClass extends BaseClass {
  function __construct () {
    echo "In the SubClass constructor\n";
    parent::__constructor();
  }
}

$elt = new SubClass();
echo $elt->id;