Zend Framework:我可以获得GET参数吗?

Jie*_*eng 11 php zend-framework

在Zend Framework中,大部分时间都可以获得一个参数,我将使用

// from controller
$this->getRequest()->getParam('key');
Run Code Online (Sandbox Code Playgroud)

但是我如何使用'Zend'方式获得GET参数?或者我只是用$_GET?两者之间有什么区别吗?

$this->getRequest()->getParam('key');
Run Code Online (Sandbox Code Playgroud)

VS

$_GET['key'];
Run Code Online (Sandbox Code Playgroud)

Rya*_*ard 34

用途getQuery():

$this->_request->getQuery('key');
Run Code Online (Sandbox Code Playgroud)

其他方法包括

  • getParam()不只
  • getQuery()
  • 的getPost()
  • 的getCookie()
  • getServer()
  • GETENV()

getParam() 首先检查用户参数,然后检查$ _GET,然后检查$ _POST,返回找到的第一个匹配项或null.

尽量避免直接访问超级球.


Gor*_*don 13

主要区别在于

$_GET['key'];
Run Code Online (Sandbox Code Playgroud)

是对环境的依赖.它要求超全局可用并包含该名称的密钥.它也只是一个简单的数组访问

$this->getRequest()->getParam('key');
Run Code Online (Sandbox Code Playgroud)

是一个API方法调用.对请求的访问是抽象的.不依赖于实际环境.Request对象可以是mock.getParam无论是否来自$_GET或,该方法都将返回一个值$_POST.

在请求之上放置抽象是更好的,因为它允许更多的解耦,更少的依赖性,因此使您的应用程序更容易测试和维护.