Php Magento getParam v$\u GET
有人能从功能和良好/不良实践两方面解释这些差异吗?为什么其中一个应该优先于另一个:Php Magento getParam v$\u GET,php,magento,Php,Magento,有人能从功能和良好/不良实践两方面解释这些差异吗?为什么其中一个应该优先于另一个: $getParam = Mage::app()->getRequest()->getParam('getparam'); 五 如果使用GET、POST(不确定是否删除、放置…)请求发送,则将返回“getparam”。不适用于Magento,但如果存在通过路由发送的参数。我希望它们也能通过该功能访问 $\u GET仅包含通过GET发送的参数 $\u POST仅包含通过POST发送的参数两者之间存在显著
$getParam = Mage::app()->getRequest()->getParam('getparam');
五
如果使用GET、POST(不确定是否删除、放置…)请求发送,则将返回“getparam”。不适用于Magento,但如果存在通过路由发送的参数。我希望它们也能通过该功能访问
$\u GET
仅包含通过GET发送的参数
$\u POST
仅包含通过POST发送的参数两者之间存在显著差异$\u GET
只是一个数组,就像$\u 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()
$\u GET
包含来自查询字符串的参数,而不考虑请求方法<如果请求的内容类型
标题为application/x-www-form-urlencoded
且请求方法为POST
则code>$\u POST包含请求正文中的参数(您可以发布内容类型json;)还可以访问从url解析的参数,例如site.com/foo/bar/baz/bip/bop/boom/bum会有参数bip=bop和boom=bumAh,是的-不敢相信我漏掉了:)如果不是请求参数(url的一部分),那么什么是“param”?为什么要使用setParam()
?Magento中的参数是url、GET和POST变量中的值组合数组的助手。除了在值到达系统之前(在predispatch
observer中)过滤或解析值之外,setParam()
没有什么用处。这不是经常使用的东西,但是当你需要它的时候它是有用的。
Mage::app()->getRequest()->getParam('getparam');
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;
}