有很多方法可以实现这一点
Tobias Zander 给出了参数的选项(依赖注入)
优点:知道函数需要什么
缺点:最终可能会给函数提供很多参数
$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,但对于一个类 class Test { protected $master;
public function __construct(Master $master)
{
$this->master = $master;
}
public function whoo()
{
// now I can use $this->master as the master class
}
}