25

機能的にも、良い/悪い習慣の観点からも、これらのいずれかが他のものよりも優先される理由を誰でも説明できますか?

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

v

$getParam = $_GET['getparam'];
4

2 に答える 2

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().

于 2012-11-23T18:10:28.637 に答える