摘要:設置為,那么將不會創建超全局變量。如果設置為空,則填充的順序會以配置項中的順序為準。例如,設置為時,代表將包含和的值,并且當和中的鍵相同時,的值將覆蓋的值。結論的值與中的配置相關。推薦在項目中盡量不要使用,而是明確的從,,中取值。
前言
在平時的開發中,我們可能會遇到以下問題:
通過 $_REQUEST 得到值怎么和與 $_GET 獲取到的不同?
$_SERVER 的值怎么是空的?
能通過 $_REQUEST 獲取到 cookie 值嗎?
要想回答這幾個問題,我們就需要詳細了解一下 $_REQUEST 。
PHP 相關配置首先來看看 PHP 配置文件 php.ini 中的相關配置:
; This directive determines which super global arrays are registered when PHP ; starts up. G,P,C,E & S are abbreviations for the following respective super ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty ; paid for the registration of these arrays and because ENV is not as commonly ; used as the others, ENV is not recommended on productions servers. You ; can still get access to the environment variables through getenv() should you ; need to. ; Default Value: "EGPCS" ; Development Value: "GPCS" ; Production Value: "GPCS"; ; http://php.net/variables-order variables_order = "GPCS"
variables_order:這個配置項設置在 PHP 腳本啟動時,要注冊 EGPCS ($_ENV, $_GET,$_POST,$COOKIE,$_SERVER) 中哪幾個超全局變量。
例如,如果設置 variables_order = "SP",那么 PHP 將創建超全局變量 $_SERVER 和 $_POST,但是不會創建 $_ENV, $_GET 和 $_COOKIE。設置為 "",那么將不會創建超全局變量。
; This directive determines which super global data (G,P & C) should be ; registered into the super global array REQUEST. If so, it also determines ; the order in which that data is registered. The values for this directive ; are specified in the same manner as the variables_order directive, ; EXCEPT one. Leaving this value empty will cause PHP to use the value set ; in the variables_order directive. It does not mean it will leave the super ; globals array REQUEST empty. ; Default Value: None ; Development Value: "GP" ; Production Value: "GP" ; http://php.net/request-order request_order = "GP"
request_order:這個配置項設置 PHP 將 GET, POST 和 Cookie 中的哪些添加到 $_REQUEST 中,并且指定了填充時的順序。如果 request_order 設置為空,則填充的順序會以 variables_order 配置項中的順序為準。
例如,設置為 request_order = "GP" 時,代表 $_REQUEST 將包含 $_GET 和 $_POST 的值,并且當 $_GET 和 $_POST 中的鍵相同時,$_POST的值將覆蓋 $_GET 的值。
結論$_REQUEST 的值與 php.ini 中的配置相關。推薦在項目中盡量不要使用 $_REQUEST,而是明確的從 $_GET,$_POST,$COOKIE 中取值。
參考資料1、http://php.net/variables-order
2、http://php.net/request-order
3、https://github.com/php/php-src/blob/master/php.ini-production#L594-L61...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30265.html
摘要:延伸如果子類繼承了父類后,重寫了構造方法,注意調用父類的哦,否則是使用不了的,代碼如下其他代碼總結一個簡單的小設計,這里拋磚引玉的分析下,希望對大家有幫助。 前言 _initialize() 這個方法在官方手冊里是這樣說的: 如果你的控制器類繼承了 hinkController類的話,可以定義控制器初始化方法_initialize,在該控制器的方法調用之前首先執行。 其實不止5,在之前...
摘要:導語是預定義的超全局變量。測試是在下進行的,環境為,訪問域名為,文件目錄在。上下文有安全性要求的環境里,不應該依賴此值。在實際工作中,有很多作用,這里只舉兩個簡單實例,獲取當前請求以及簡單防盜鏈當前是否為協議,前一頁面的參考資料手冊消息頭 導語 $_SERVER 是PHP預定義的超全局變量。所謂超全局變量,即在腳本全部作用域中都可以使用,$_SERVER保存關于報頭、路徑和腳本位置的信...
摘要:導語是預定義的超全局變量。測試是在下進行的,環境為,訪問域名為,文件目錄在。上下文有安全性要求的環境里,不應該依賴此值。在實際工作中,有很多作用,這里只舉兩個簡單實例,獲取當前請求以及簡單防盜鏈當前是否為協議,前一頁面的參考資料手冊消息頭 導語 $_SERVER 是PHP預定義的超全局變量。所謂超全局變量,即在腳本全部作用域中都可以使用,$_SERVER保存關于報頭、路徑和腳本位置的信...
摘要:在我之前寫的中源碼的深究和理解一文中解釋了如何支持多線程主要通過兩個類來實現和在中有兩個屬性和后者用來獲取線程從而區分不同線程發來的請求這次要說的是如何開啟多線程先從這個方法看起會進入這個函數經過判斷和設置后進入這個函數看下源碼 在我之前寫的《flask中current_app、g、request、session源碼的深究和理解》一文中解釋了flask如何支持多線程主要通過兩個類來實現...
今天給大家獻上登錄注冊接口開發,是基于token驗證的。咱們閑言少敘,進入正題! 首先看一下數據庫模型: #pip install passlib from passlib.apps import custom_app_context as pwd_context class Shop_list(db.Model): __tablename__ = shop_list userNa...
閱讀 3027·2021-11-02 14:40
閱讀 843·2019-08-30 15:53
閱讀 1265·2019-08-30 15:53
閱讀 3259·2019-08-30 13:53
閱讀 3304·2019-08-29 12:50
閱讀 1131·2019-08-26 13:49
閱讀 1862·2019-08-26 12:20
閱讀 3660·2019-08-26 11:33