2

我目前正在这样做:

$_GET要求

$process = @$_GET['data_process'];
$id = @$_GET['data_id'];
$link = @$_GET['data_page'];

$_POST要求

$process = @$_POST['data_process'];
$id = @$_POST['data_id'];
$link = @$_POST['data_page'];

虽然对我来说看起来很乱。我该如何完善这个过程?

4

2 回答 2

6

这就是我所做的

function POST($key) {
    return isset($_POST[$key]) ? $_POST[$key] : null;
}

function GET($key) {
    return isset($_GET[$key]) ? $_GET[$key] : null;
}

简单用法

$process = GET('data_process');
$id = GET('data_id');
$link = GET('data_page');

$process = POST('data_process');
$id = POST('data_id');
$link = POST('data_page');

编辑:通过这种方式,您可以轻松分配默认值。例子:

function POST($key,$default=null) {
    return isset($_POST[$key]) ? $_POST[$key] : $default;
}

$process = POST('p','defaultvalue');

@yes123 想要更多在这里你有它..

$R = new REQUEST();
$process = $R['data_process'];
$id = $R['data_id'];
$link = $R['data_page'];

使用的类

class REQUEST implements \ArrayAccess {
    private $request = array();

    public function __construct() {
        $this->request = $_REQUEST;
    }

    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->request[] = $value;
        } else {
            $this->request[$offset] = $value;
        }
    }

    public function offsetExists($offset) {
        return isset($this->request[$offset]);
    }

    public function offsetUnset($offset) {
        unset($this->request[$offset]);
    }

    public function offsetGet($offset) {
        return isset($this->request[$offset]) ? $this->request[$offset] : null;
    }
}
于 2012-10-09T10:28:58.027 回答
3

您可以执行以下操作来检查变量:

$id = isset($_GET['id']) ? (int)$_GET['id'] : '';

不要使用@来隐藏通知。你应该有一个干净的代码。

于 2012-10-09T10:29:20.480 回答