ホームページ >バックエンド開発 >PHPチュートリアル >$_REQUEST が空なのはなぜですか?

$_REQUEST が空なのはなぜですか?

WBOY
WBOYオリジナル
2016-06-23 14:16:231544ブラウズ

私の php.ini は次のように設定されています:

variables_order = "EGPCS"
request_order =

request_order が空白のままの場合、variables_order の値は使用されませんか?


ディスカッション (解決策) への返信

どのようにリクエストしたかわかりません。リクエストのプロセスを説明してください。

request_order =GP
これはデフォルトの get および post ではないのに、なぜ空に設定するのでしょうか?

どのようにリクエストしたかわかりません。リクエストのプロセスを説明してください。

xxx.php?aaa=bbb

request_order が空の場合、$_REQUEST は空の配列になります。
request_order = "GP" の場合、$_REQUEST にはコンテンツのみが含まれます。


どのようにリクエストしたかわかりません。リクエストのプロセスを説明してください。

xxx.php?aaa=bbb

request_order が空の場合、$_REQUEST は空の配列になります。
request_order = "GP" の場合、$_REQUEST にはコンテンツのみが含まれます。


そうです、request_order の説明を見てください、これは $_REQUEST 変数の設定と上書き順序を設定します。空の場合、つまり $_REQUEST には P (Post)、G (Get)、C (Cookie) 変数が含まれていないため、当然空です



どのようにリクエストしたかわかりません。説明してくださいあなたのリクエストプロセス。

xxx.php?aaa=bbb

request_order が空の場合、$_REQUEST は空の配列になります。
request_order = "GP" の場合、$_REQUEST にはコンテンツのみが含まれます。


そうです、request_order の説明を見てください、これは $_REQUEST 変数の設定と上書き順序を設定します。空の場合、つまり $_REQUEST には P (Post)、G (Get)、C (Cookie) 変数が含まれていないため、当然空です

PHP の次の文は何を意味しますか:

If this directive is not set, variables_order is used for $_REQUEST contents.


いいえ、空白のままにすると、variables_order の値が使用されるという意味ですか?

php.ini には次のように書かれています:

 626 ; This directive determines which super global data (G,P,C,E & S) should 627 ; be registered into the super global array REQUEST. If so, it also determines 628 ; the order in which that data is registered. The values for this directive are 629 ; specified in the same manner as the variables_order directive, EXCEPT one. 630 ; Leaving this value empty will cause PHP to use the value set in the 631 ; variables_order directive. It does not mean it will leave the super globals 632 ; array REQUEST empty. 633 ; Default Value: None 634 ; Development Value: "GP" 635 ; Production Value: "GP" 636 ; http://php.net/request-order 637 request_order = "GP"


私の理解が間違っていたでしょうか?私の英語レベルは比較的低いです。 。 。




どのようにリクエストされたかわかりません。リクエストのプロセスを説明してください。

xxx.php?aaa=bbb

request_order が空の場合、$_REQUEST は空の配列になります。
request_order = "GP" の場合、$_REQUEST にはコンテンツのみが含まれます。


そうです、request_order の説明を見てください、$_REQUEST 変数の設定と上書き順序を設定します。空の場合、つまり $_REQUEST には P (Post)、G (Get)、C (Cookie) 変数が含まれていないため、当然空です

PHP の次の文は何を意味しますか:

If this directive is not set, variables_order is used for $_REQUEST contents.


いいえ、空白のままにすると、variables_order の値が使用されるという意味ですか?

php.ini には次のように書かれています:

 626 ; This directive determines which super global data (G,P,C,E & S) should 627 ; be registered into the super global array REQUEST. If so, it also determines 628 ; the order in which that data is registered. The values for this directive are 629 ; specified in the same manner as the variables_order directive, EXCEPT one. 630 ; Leaving this value empty will cause PHP to use the value set in the 631 ; variables_order directive. It does not mean it will leave the super globals 632 ; array REQUEST empty. 633 ; Default Value: None 634 ; Development Value: "GP" 635 ; Production Value: "GP" 636 ; http://php.net/request-order 637 request_order = "GP"


私の理解が間違っていたでしょうか?私の英語レベルは比較的低いです。 。 。


テストしたところです。 variables_order = "GP"
または variables_order = "GPCS"
request_order =
の場合、マニュアルにあるように、request_order の値は variables_order の値を使用します。
php 5.2.17

不可解なのは、changelog の request_order が 5.3 で導入されたことを覚えていることですが、なぜこの設定項目が 5.2 の設定にも含まれているのかわかりません。





どのようにリクエストされたかわかりません。リクエストのプロセスを説明してください。

xxx.php?aaa=bbb

request_order が空の場合、$_REQUEST は空の配列になります。
request_order = "GP" の場合、$_REQUEST にはコンテンツのみが含まれます。


そうです、request_order の説明を見てください、これは $_REQUEST 変数の設定と上書き順序を設定します。空の場合、つまり $_REQUEST には P (Post)、G (Get)、C (Cookie) 変数が含まれていないため、当然空です

PHP の次の文は何を意味しますか:

If this directive is not set, variables_order is used for $_REQUEST contents.


いいえ、空白のままにすると、variables_order の値が使用されるという意味ですか?

php.ini には次のように書かれています:

 626 ; This directive determines which super global data (G,P,C,E & S) should 627 ; be registered into the super global array REQUEST. If so, it also determines 628 ; the order in which that data is registered. The values for this directive are 629 ; specified in the same manner as the variables_order directive, EXCEPT one. 630 ; Leaving this value empty will cause PHP to use the value set in the 631 ; variables_order directive. It does not mean it will leave the super globals 632 ; array REQUEST empty. 633 ; Default Value: None 634 ; Development Value: "GP" 635 ; Production Value: "GP" 636 ; http://php.net/request-order 637 request_order = "GP"


私の理解が間違っていたでしょうか?私の英語レベルは比較的低いです。 。 。


テストしたところです。 variables_order = "GP"
または variables_order = "GPCS"
request_order =
の場合、マニュアルにあるように、request_order の値は variables_order の値を使用します。
php 5.2.17.

不可解なのは、changelog の request_order が 5.3 で導入されたことを覚えていることですが、なぜ 5.2 の設定項目にもこの設定項目があるのか​​わかりません

しかし、私は外部サーバー php 5.3 を使用しています。 24 およびローカル php 5.4.4 テストの結果、request_order が空白のままの場合、variables_order の値は使用されませんが、$_REQUEST は空白のままになります。

request_order は確かに 5.3 で導入されました。設定した request_order がまったく機能しなかった可能性はありますか? 5.3 より前では、$_REQUEST が variables_order として直接使用されていた可能性があります。

php5.3 の初期バージョンには $_REQUEST の処理に問題がありました
少なくとも php 5.3.6 では、データが渡されない場合、$_REQUEST は空ではなく未定義になります
この問題がどのバージョンで修正されたかは不明です


スーパーグローバル配列 REQUEST が空のままになるという意味ではありません

php5.3 の初期バージョンでは $_REQUEST の処理に問題がありました
少なくとも php 5.3.6 では、データが渡されない場合。 , $_REQUEST は空ではなく未定義です
この問題がどのバージョンで修正されたかは不明です


スーパーグローバル配列 REQUEST が空のままになるという意味ではありません

私がテストした 2 つのバージョンは、未定義ではなく空の配列です。
ChangeLog を見てみましたが、これについては言及されていませんでした。つまり、php ドキュメントと php.ini に記載されている内容はすべて間違っているようです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。