Magento getParam v $_GET

2022-08-30 17:06:24

任何人都可以解释功能上和好/坏实践方面的差异,其中一个应该优先于另一个:

$getParam = Mage::app()->getRequest()->getParam('getparam');

v

$getParam = $_GET['getparam'];

答案 1

两者之间有显着差异。 只是一个数组,如 .但是,调用将允许您访问GET和POST(此处不包括DELETE和PUT) - 请参阅下面的代码:$_GET$_POSTMage::app()->getRequest()->getParam('param_name')

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

此外,如果系统使用 设置其他参数,则可通过函数访问它。在Magento中,您希望始终使用.Mage::app()->getRequest()->setParam()getParam()getParam()


答案 2
Mage::app()->getRequest()->getParam('getparam');

如果与GET,POST(不确定删除,PUT ...)请求一起发送,将返回您的“getparam”。不能与Magento一起使用,但如果有通过路由发送的参数。我希望它们也可以通过该功能访问。

$_GET仅包含通过 GET 发送的参数

$_POST仅包含通过 POST 发送的参数


推荐