整个项目我都有大师班。我需要调用主类函数到不同的页面和方法,如下所述:
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;
}