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;
}