Php 扩展时找不到类

Php 扩展时找不到类,php,extends,classnotfound,Php,Extends,Classnotfound,我有一个类MyClass,运行良好。当我使用 $obj=new MyClass()工作起来很有魅力。问题是,如果我扩展这个类MyClass扩展MyExtends,它会给我一个错误:找不到类MyClass 因为细节是魔鬼,这里有一些: 1) MyClass实例是在同一个文件(称为MyClass.php)中创建的 2) 使用ajax调用创建obj if($_POST['myAjaxFlag']){ $obj = new MyClass(); } 3) ajax调用返回成功,但是如果我打印

我有一个
类MyClass
,运行良好。当我使用
$obj=new MyClass()
工作起来很有魅力。问题是,如果我扩展这个
类MyClass扩展MyExtends
,它会给我一个错误:找不到类MyClass

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

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

2) 使用ajax调用创建
obj

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

3) ajax调用返回成功,但是如果我打印返回的数据,我会收到class not found错误php消息。

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

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

}
更正:

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

那就行了;)

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

在扩展MyExtends之前,还需要先定义它。。。可以事先在同一文件中保存,也可以通过“require”语句保存。

订单事项:

<?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();    

?>

基地你好

孩子你好


您在哪里定义MyExtends?您能发布您收到的确切错误消息吗?1)和2)是否发生在同一个文件中?客户端AJAX使用http状态代码来确定成功/失败。只要PHP端返回200,Javascript将假定成功,即使实际的“成功”是完全失败。找不到您的
myextens
class…@iamnotmaynard myextens在另一个文件中定义。我把这个文件放在开头。谢谢!我真的不知道为什么会这样,但确实如此。如果我不扩展MyClass,即使在类声明之前,它也会工作。编辑:在更正之前,我看到了您的响应,我认为您想更改顺序(没有第一个$obj=new MyClass();)是的,您是对的,我已经更正了格式,因为它只有一个代码块,所以我将其拆分为两个。但是很好,它可以工作。我需要一个文件,其中MyExtends在开始时声明,但仍然不起作用。MyExtends类在MyClass声明之前声明(使用顶部的
require
)。
<?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();    

?>