Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将一个类关闭到另一个文件中_Php_Class - Fatal编程技术网

Php 如何将一个类关闭到另一个文件中

Php 如何将一个类关闭到另一个文件中,php,class,Php,Class,我有一个非常大的单类文件,我想打破这个太大的类并将其代码分发到多个文件中,但是不使用extend方法,因为我只想对这个类使用相同的对象 例: 文件a: class name { public function admin_logout(){ if(isset($_SESSION['wcddl_admin'])) { unset($_SESSION['wcddl_admin']); session_destroy();

我有一个非常大的单类文件,我想打破这个太大的类并将其代码分发到多个文件中,但是不使用extend方法,因为我只想对这个类使用相同的对象 例:

文件a:

class name {

    public function admin_logout(){

    if(isset($_SESSION['wcddl_admin'])) {
        unset($_SESSION['wcddl_admin']);
            session_destroy();
            header("Location:index.php");
  }

}
文件b:

include("a.php");

 }
我试过类似的方法,但没有成功


有什么想法吗?

在php中,不能在文件之间以本机方式拆分类。我想你可以做一些奇特的事情,比如动态构建一个文件,然后加载它,但那会很痛苦

关于您的高级类,您可以为普通用户创建一个基类,然后将其扩展为高级类。但很可能你在一门课上放的太多了


您可能需要开始另一个问题,并描述您试图解决的问题。

您无法创建语法无效的php文件。 但您可以为每个方法包含一个文件

class name {
    public function admin_logout(){
        include('methods/admin_logout.php');
    }
    public function mymethod(){
        include('methods/mymethod.php');
    }
}
或者您可以使用magic method\uuu调用构建一个类

class name {
    public function __call($name, $arguments){
        include('methods/'.$name.'.php');
    }
}

然而,如果您被迫这样做,也许您应该改变项目的方法。

为什么要这样做?文件是否大并不重要——如果文件中的方法应该在逻辑上分组到一个类中,则将它们放在一起。通常,仅根据类的工作性质,跨多个文件跨类从来都不是一个好主意。如果方法A调用调用方法C的方法B,但方法B在类文件2中,方法C在类文件3中,该怎么办。如果您的类太大,请尝试寻找将模板代码重构为帮助器类的方法。听起来您正在编写一个类来管理所有类。你可以考虑编写一个用户交互的处理程序类和一个其他的类,它是处理程序用来做事情的。米迦勒,我想把这个类的一些片段分割成用于高级用户的高级片段,------迈克,当然我知道这不是一个好方法,我只是猜猜是否有其他方法来做这件事?