扩展时找不到类


Class not found when extended

我有一个工作正常的class MyClass。当我使用 $obj = new MyClass()就像一个魅力。问题是,如果我扩展这个class MyClass extends MyExtends,它会给我一个错误:找不到类 MyClass

因为魔鬼在细节中,这里有一些:

1) MyClass 实例是在同一文件(称为 MyClass.php)中创建的。

$obj = new MyClass();
class MyClass extends MyExtends{
}

2) 使用 ajax 调用obj的创建

if($_POST['myAjaxFlag']){
    $obj = new MyClass();
} 

3)ajax调用返回为成功,但是如果我打印返回的数据,则会收到该类未找到错误php消息。

这是因为您在初始化后声明了类"MyClass"

obj = new MyClass();
class MyClass extends MyExtends{
}

纠正:

class MyClass extends MyExtends{
}
obj = new MyClass();

应该工作然后;)

顺序很重要:

<?php
    class Base
    {
        protected function sayHello()
        {
            echo("Base hello'n");
        }
    }
    class Child extends Base
    {
        public function sayHello()
        {
            parent::sayHello();
            echo("Child hello'n");
        }
    }
    $obj = new Child();
    $obj->sayHello();    
?>

基地问候

孩子你好

您需要先定义类,然后才能使用它。 所以"new"应该在类MyClass定义之后。

此外,在

扩展之前需要定义MyExtends...可以事先在同一文件中,也可以通过"require"语句。