在PHP中,如何将主类函数调用到不同的页面


In PHP, how do I call master class functions to different pages?

整个项目我都有大师班。我需要调用主类函数到不同的页面和方法,如下所述:

Master.php

class master{
    function login_parser(){
    }
}

index . php

include('master.php')
function test(){
    $obj = new master();
}
function test2(){
    obj = new master();
}

我需要为每个方法调用object。有没有一种方法可以一次调用一个对象?

您可以将该对象作为函数的参数,因此很明显该对象存在依赖关系,该依赖关系也可以通过类型提示(如果只是通过global使用它会丢失)

$obj = new master();
function test(master $obj) {
  ...
}

然后调用:

test($obj);

有很多方法可以做到这一点

Tobias Zander给出了参数选项(依赖注入)

优点:知道函数需要什么

cons:可能会给函数提供很多参数

$obj = new master();
function test(master $obj) {
  ...
}
第二种方法是使用全局变量

优点:无参数链

缺点:不知道函数有什么依赖

$obj = new master();
function test(){
    global $obj; //Now carry on
}
第三种方式,单例

优点:面向对象方式

缺点:不知道依赖

在这里,你的主类需要一个静态函数来返回它自己

class Master
    {
    protected static $master ;
    public static function load()
    {
        if(!self::$master instanceof Master) {
            self::$master = new Master();
        }
        return self::$master;
    }
}

现在我可以在我的脚本的任何地方使用主加载函数,它只会被启动一次

function test()
{
    $master = Master::load();
}

我个人使用方法1,但不是用于类类测试{保护主人美元;

    public function __construct(Master $master) 
    {
        $this->master = $master;
    }
    public function whoo()
    {
        // now I can use $this->master as the master class
    }
}

是,而不是每次创建对象。

include('master.php')
$obj = new master();
function test(){
    global $obj; //Now carry on
}
function test2(){
    global $obj;
}