任何人都可以解释功能上和好/坏实践方面的差异,为什么其中一个应该优于另一个:
$getParam = Mage::app()->getRequest()->getParam('getparam');
v
$getParam = $_GET['getparam'];
两者之间存在显着差异。$_GET
只是一个数组,例如$_POST
. 但是,调用Mage::app()->getRequest()->getParam('param_name')
将使您可以访问 GET 和 POST (此处不包括 DELETE 和 PUT) - 请参见下面的代码:
lib/Zend/Controller/Request/Http.php
public function getParam($key, $default = null)
{
$keyName = (null !== ($alias = $this->getAlias($key))) ? $alias : $key;
$paramSources = $this->getParamSources();
if (isset($this->_params[$keyName])) {
return $this->_params[$keyName];
} elseif (in_array('_GET', $paramSources) && (isset($_GET[$keyName]))) {
return $_GET[$keyName];
} elseif (in_array('_POST', $paramSources) && (isset($_POST[$keyName]))) {
return $_POST[$keyName];
}
return $default;
}
此外,如果系统用 设置了其他参数Mage::app()->getRequest()->setParam()
,则可以通过该getParam()
函数访问它。在 Magento 中,您希望始终使用getParam()
.
Mage::app()->getRequest()->getParam('getparam');
如果使用 GET、POST(不确定 DELETE、PUT ...)请求发送,将返回“getparam”。不适用于 Magento,但如果有通过路由发送的参数。我希望它们也可以通过该功能访问。
$_GET
仅包含通过 GET 发送的参数
$_POST
仅包含通过 POST 发送的参数