我正在学习Zend Framework,并遇到以下语法。方法语法“public function direct(){}”在PHP中如何工作?
class Zend_Controller_Action_Helper_Redirector extends Zend_Controller_Action_Helper_Abstract
{
/**
* Perform a redirect to an action/controller/module with params
*
* @param string $action
* @param string $controller
* @param string $module
* @param array $params
* @return void
*/
public function gotoSimple($action, $controller = null, $module = null, array $params = array())
{
$this->setGotoSimple($action, $controller, $module, $params);
if ($this->getExit()) {
$this->redirectAndExit();
}
}
/**
* direct(): Perform helper when called as
* $this->_helper->redirector($action, $controller, $module, $params)
*
* @param string $action
* @param string $controller
* @param string $module
* @param array $params
* @return void
*/
public function direct($action, $controller = null, $module = null, array $params = array())
{
$this->gotoSimple($action, $controller, $module, $params);
}
}
在Zend框架在这个类的直接()方法可使用以下语法可以称为:
$this->_helper->redirector('index','index');
当重定向器是一个对象在_helper对象,它是内部的(!)控制器对象,我们称之为方法。这里的语法糖是,你可以传递参数的对象,而不是这种方法,我们会写像这样:
$this->_helper->redirector->gotoSimple('index','index');
..这是所有罚款和花花公子ofcourse。
这是我的问题:这是OO PHP中的direct()方法标准吗?或者这个功能是否内置在Zend Framework中? 我找不到任何文档。
谢谢!
此外,你可以在这里阅读关于助手(和'直接'方法):http://devzone.zend.com/article/3350 – Ernest 2010-10-30 12:54:28
这是一些很好的代码。感谢您指出! – 2010-10-30 12:56:11
编辑完成后:您谈论的是更长的语法作为更快的替代方案,我们谈论得更快还是可以忽略不计?好的,这当然取决于它,但它就像解析双引号字符串与变量或连接单引号字符串和变量的比较? – 2010-10-30 13:10:39