AJAX扩展到一个PHP类,不传递包含的类

AJAX扩展到一个PHP类,不传递包含的类,php,jquery,ajax,Php,Jquery,Ajax,我通过AJAX从一个PHP类调用一个函数,该类扩展了另一个类,但没有包含在该文件中,而是包含在另一个文件中。 下面是我的代码: 客户: $('.username').change(function(){ var indexOfNumber = $(this).attr('class').indexOf('d'); var number = $(this).attr('class').substring(Number(indexOfNumber)+1);

我通过AJAX从一个PHP类调用一个函数,该类扩展了另一个类,但没有包含在该文件中,而是包含在另一个文件中。 下面是我的代码:

客户:

$('.username').change(function(){
        var indexOfNumber = $(this).attr('class').indexOf('d');
        var number = $(this).attr('class').substring(Number(indexOfNumber)+1);

        $.ajax({
            url: 'class1.php',
            complete: function(response) {
                alert(response.responseText);
            },
            error: function(){
                alert("error");
            }
        });

        $('.userrole.d'+number).html(number);
    });
类别1:

class class1 extends class2
{
    function class1()
    {
        $this->class2(); << I am getting an error here
    }
我得到的错误是:

在class1的位置中找不到类“class2”

class2包含在项目的config.php文件中,因此它不再包含在文件中,当我从AJAX调用该文件时,它似乎看不到以前包含的php文件


有办法吗

唯一的解决方法是需要class1.php中的必要文件。或者您可以包含一个加载自定义自动加载程序的文件,该程序可以在请求类时动态加载文件。

我不能执行第一个选项,因为这将导致两次声明同一类时出错。你能解释更多关于你答案的第二部分吗?请:包括一个加载自定义自动加载器的文件。如果你只需要该文件一次,你不应该得到这个错误。如果您只使用require_一次,而不是require或include,那么就可以了。最好使用_构造而不是命名的构造函数:function class1。这是不赞成的,它奏效了。谢谢您还可以详细介绍一下自定义自动加载程序吗?基本上,您创建了一个函数,该函数接收需要加载的类的名称。然后编写确定如何使用基于该名称的类查找文件位置的逻辑。请看这里: