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 に答える