34

$_POST 配列のコンテンツを完全にクリアしたいのですが、インターネットで見たすべての例は次のようになります。

if (count($_POST) > 0) {
    foreach ($_POST as $k=>$v) {
        unset($_POST[$k]);
    }
}

教えてください、この変種はもっと良くなりませんか? (省資源の観点)

if (count($_POST) > 0) {
     $_POST = array();
}

か否か ?

4

6 に答える 6

63

はい、それで結構です。(スーパー)グローバルスコープ$_POSTを持っていることを除いて、単なる別の変数です。

$_POST = array();

...十分でしょう。ループは駄目です。他のファイルがそれを読み取ろうとしていて、それが配列であると想定している場合に備えて、設定を解除するのではなく、配列として保持することをお勧めします。

于 2012-10-18T11:50:40.280 に答える
8

変数の設定を解除する$_POSTには、空の配列として再宣言します。

$_POST = array();
于 2012-10-18T11:50:30.663 に答える
0

unset()と初期化の両方を組み合わせて使用​​できます。

unset($_POST);
$_POST = array();

または、単一のステートメントで:

unset($_POST) ? $_POST = array() : $_POST = array();

しかし、あなたがこれをしたい理由は何ですか?

于 2012-10-18T11:51:24.150 に答える
0

誰かがそれを使用する「理由」に答えるために、ページの更新後またはあるページから別のページに移動している間に $_POST 値を保存していたので、それを使用したくなりました。私の感覚では、これは良い習慣ではありませんが、それでも機能します。

于 2014-05-04T14:16:04.097 に答える