将$ _GET和$ _POST分配给单个变量

时间:2012-10-09 10:26:14

标签: php

我目前正在这样做:

$_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'];

虽然我看起来很乱。我该如何改进这个过程?

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:3)

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

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

请勿使用 @ 隐藏通知。你应该有一个干净的代码。