任何人都可以在功能上和善恶方面解释这些差异,其中一个应该优先于另一个:
$getParam = Mage::app()->getRequest()->getParam('getparam');
v
$getParam = $_GET['getparam'];
答案 0 :(得分:39)
两者之间存在显着差异。 $_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()
。
答案 1 :(得分:6)
Mage::app()->getRequest()->getParam('getparam');
如果使用GET,POST(不确定DELETE,PUT ...)请求发送,则会返回'getparam'。没有使用Magento但是如果有通过路由发送的参数。我希望通过该功能也可以访问它们。
$_GET
仅包含通过GET发送的参数
$_POST
仅包含通过POST发送的参数