class Gdn {
const AliasDispatcher = 'Dispatcher';
protected static $_Factory = NULL;
public static function Dispatcher() {
$Result = self::Factory(self::AliasDispatcher);
return $Result;
}
public static function Factory($Alias = FALSE) {
if ($Alias === FALSE)
return self::$_Factory;
// Get the arguments to pass to the factory.
//$Args = array($Arg1, $Arg2, $Arg3, $Arg4, $Arg5);
$Args = func_get_args();
array_shift($Args);
return self::$_Factory->Factory($Alias, $Args);
}
}
如果我像$Dispatcher = Gdn::Dispatcher();
那样调用Dispatcher(),那么return self::$_Factory->Factory($Alias, $Args);
是什么意思?
答案 0 :(得分:1)
这意味着Dispatcher()返回一个对象,该对象是Factory()创建的东西的副本。
答案 1 :(得分:0)
self ::表示您正在引用当前对象的类 因为factory是一个递归函数,所以它会一直调用自己,直到它耗尽参数,然后返回当前工厂类中设置的工厂。
如果你这样做: “blah->工厂('test1','test2',test3','test4')”它会像:
blah->factory('test1','test2','test3','test4')
blah->$_Factory->Factory('test1',array('test2','test3','test4'))
blah->$_Factory->Factory(array('test2','test3','test4'));
blah->$_Factory->Factory();
// oh hey, i dont have any arguments, replace it with my default argument 'false' and thus return the factory
return self::$_Factory;
我不知道为什么你会想要它,但这就是它的作用