質問
$_REQUEST と言えば、$_GET と $_POST の集合体であることは誰もが知っています。ただし、興味がある場合は、ドキュメントを確認してください。次のことがわかります。
$_リクエスト
デフォルトで $_GET、$_POST、$_COOKIE の内容を含む連想配列。
$_REQUEST はデフォルトで $_GET、$_POST、$_COOKIE のコレクションになると書かれていますが、ローカルの PHP を使用して確認したところ、$_GET、$_POST のみが存在し、$_COOKIE は存在しませんでした。 ! ドキュメントが間違っている可能性がありますか?
答え
実際、変更ログに説明があります:
バージョン 5.3 以降の場合、$_REQUEST を設定するための request_order 属性が php.ini にあります。 php.ini を確認すると、request_order が GP (Get and Post) に設定されます。
request_orderの公式ウェブサイトの説明:
request_order文字列
このディレクティブは、PHP が GET、POST、Cookie 変数を _REQUEST 配列に登録する順序を記述します。登録は左から右に行われ、新しい値が古い値をオーバーライドします。
このディレクティブが設定されていない場合、$_REQUEST の内容には variables_order が使用されます。セキュリティ上の理由から、デフォルトの配布 php.ini ファイルには Cookie を表す「C」が含まれていないことに注意してください。
バージョン 5.3 以降では、G、P、C はそれぞれ Get、Post、Cookie を表すことがわかり、request_order はデフォルトで GP に設定されており、C は含まれません。つまり、$_REQUEST には $_GET と $ のみが含まれます。デフォルトでは _POST!! (そのため、公式 Web サイトのドキュメントはやや誤解を招きます)。
また、G、P、C の順序が集合配列のカバレッジ順序であるとも言います。
念のため、実験にfpm-phpを使用している場合は、php.iniを変更した後、php-fpmを再起動する必要があります
http://www.bkjia.com/PHPjc/326875.html