php中使用$_REQUEST需要注意的一个问题
问题
说起$_REQUEST,大家都知道的是它是$_GET和$_POST的集合。但是如果你有心的话,查一下文档,会看到:
$_REQUEST
An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE.
这里说$_REQUEST默认是$_GET, $_POST, $_COOKIE的集合,结果我使用我本地的php查看了一下发现只有$_GET, $_POST, 没有$_COOKIE!! 难道文档是错的?
答案
其实changelog中有给出解释:
版本5.3以上,php.ini中有request_order属性来设置$_REQUEST。查了下php.ini, request_order设置成为了GP(Get and Post)。
request_order的官网描述:
request_order string
This directive describes the order in which PHP registers GET, POST and Cookie variables into the _REQUEST array. Registration is done from left to right, newer values override older values.
If this directive is not set, variables_order is used for $_REQUEST contents.
Note that the default distribution php.ini files does not contain the 'C' for cookies, due to security concerns.
原来是G,P,C分别代表Get,Post,Cookie,5.3以上的版本request_order默认是设置成GP的,并不包含C,即$_REQUEST默认只包含$_GET和$_POST !! (所以官网文档有一定的误导)。
也同时说一下G,P,C的先后顺序就是设置的array的覆盖顺序。
提醒下如果你是使用fpm-php实验的话,改了php.ini后你需要重启php-fpm

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
