1

これは、PHP グローバル変数に関するものです。それは、グローバル変数が HTTP リクエストを介して単純に値を割り当てられていることを意味しますか (つまり、既存の値のない変数)、または変数が「インスタンス化」されて値が割り当てられていることを意味しますか (つまり、スクリプトに既存の変数がない場合) ? 私はまだ説明しているテキストを見たことがありません。

4

2 に答える 2

1

registerグローバル化とは、単純に、さまざまなリクエスト変数をグローバルに使用できるものとして登録するプロセスを意味します。ただし、この場合の「登録」は、「割り当て」または「設定」とは根本的に異なります。これは、グローバルが本質的に対応するスーパーグローバル キーにリンクされている (またはエイリアスとして「登録」されている) ためです。

// register_globals is on
$_POST["username"] === $username; // true

$username = "foo";
$_POST["username"] === $username; // *still* true

$_POST["username"] = "bar";
$_POST["username"] === $username; // *still* true

つまり、1 つを変更すると、対応するスーパーグローバル キーが変更されます。もちろん、この動作に依存するべきではありません —register_globalsそもそも使用している場合は、何か間違ったことをしています。

于 2012-09-04T00:36:50.527 に答える
0

PHPregister_globalsは適切なグローバル変数を作成し、それらに値を割り当てます。register_globalsセキュリティ上のリスクがあるため、を使用するのはおそらく非常に悪い考えであることに注意してください。スーパーグローバル配列$_POST$_GETおよびを使用することをお勧めします$_COOKIE

于 2012-09-04T00:34:27.017 に答える