摘要:設(shè)置為,那么將不會(huì)創(chuàng)建超全局變量。如果設(shè)置為空,則填充的順序會(huì)以配置項(xiàng)中的順序?yàn)闇?zhǔn)。例如,設(shè)置為時(shí),代表將包含和的值,并且當(dāng)和中的鍵相同時(shí),的值將覆蓋的值。結(jié)論的值與中的配置相關(guān)。推薦在項(xiàng)目中盡量不要使用,而是明確的從,,中取值。
前言
在平時(shí)的開(kāi)發(fā)中,我們可能會(huì)遇到以下問(wèn)題:
通過(guò) $_REQUEST 得到值怎么和與 $_GET 獲取到的不同?
$_SERVER 的值怎么是空的?
能通過(guò) $_REQUEST 獲取到 cookie 值嗎?
要想回答這幾個(gè)問(wèn)題,我們就需要詳細(xì)了解一下 $_REQUEST 。
PHP 相關(guān)配置首先來(lái)看看 PHP 配置文件 php.ini 中的相關(guān)配置:
; 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:這個(gè)配置項(xiàng)設(shè)置在 PHP 腳本啟動(dòng)時(shí),要注冊(cè) EGPCS ($_ENV, $_GET,$_POST,$COOKIE,$_SERVER) 中哪幾個(gè)超全局變量。
例如,如果設(shè)置 variables_order = "SP",那么 PHP 將創(chuàng)建超全局變量 $_SERVER 和 $_POST,但是不會(huì)創(chuàng)建 $_ENV, $_GET 和 $_COOKIE。設(shè)置為 "",那么將不會(huì)創(chuàng)建超全局變量。
; 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:這個(gè)配置項(xiàng)設(shè)置 PHP 將 GET, POST 和 Cookie 中的哪些添加到 $_REQUEST 中,并且指定了填充時(shí)的順序。如果 request_order 設(shè)置為空,則填充的順序會(huì)以 variables_order 配置項(xiàng)中的順序?yàn)闇?zhǔn)。
例如,設(shè)置為 request_order = "GP" 時(shí),代表 $_REQUEST 將包含 $_GET 和 $_POST 的值,并且當(dāng) $_GET 和 $_POST 中的鍵相同時(shí),$_POST的值將覆蓋 $_GET 的值。
結(jié)論$_REQUEST 的值與 php.ini 中的配置相關(guān)。推薦在項(xiàng)目中盡量不要使用 $_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...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30265.html
摘要:延伸如果子類(lèi)繼承了父類(lèi)后,重寫(xiě)了構(gòu)造方法,注意調(diào)用父類(lèi)的哦,否則是使用不了的,代碼如下其他代碼總結(jié)一個(gè)簡(jiǎn)單的小設(shè)計(jì),這里拋磚引玉的分析下,希望對(duì)大家有幫助。 前言 _initialize() 這個(gè)方法在官方手冊(cè)里是這樣說(shuō)的: 如果你的控制器類(lèi)繼承了 hinkController類(lèi)的話,可以定義控制器初始化方法_initialize,在該控制器的方法調(diào)用之前首先執(zhí)行。 其實(shí)不止5,在之前...
摘要:導(dǎo)語(yǔ)是預(yù)定義的超全局變量。測(cè)試是在下進(jìn)行的,環(huán)境為,訪問(wèn)域名為,文件目錄在。上下文有安全性要求的環(huán)境里,不應(yīng)該依賴(lài)此值。在實(shí)際工作中,有很多作用,這里只舉兩個(gè)簡(jiǎn)單實(shí)例,獲取當(dāng)前請(qǐng)求以及簡(jiǎn)單防盜鏈當(dāng)前是否為協(xié)議,前一頁(yè)面的參考資料手冊(cè)消息頭 導(dǎo)語(yǔ) $_SERVER 是PHP預(yù)定義的超全局變量。所謂超全局變量,即在腳本全部作用域中都可以使用,$_SERVER保存關(guān)于報(bào)頭、路徑和腳本位置的信...
摘要:導(dǎo)語(yǔ)是預(yù)定義的超全局變量。測(cè)試是在下進(jìn)行的,環(huán)境為,訪問(wèn)域名為,文件目錄在。上下文有安全性要求的環(huán)境里,不應(yīng)該依賴(lài)此值。在實(shí)際工作中,有很多作用,這里只舉兩個(gè)簡(jiǎn)單實(shí)例,獲取當(dāng)前請(qǐng)求以及簡(jiǎn)單防盜鏈當(dāng)前是否為協(xié)議,前一頁(yè)面的參考資料手冊(cè)消息頭 導(dǎo)語(yǔ) $_SERVER 是PHP預(yù)定義的超全局變量。所謂超全局變量,即在腳本全部作用域中都可以使用,$_SERVER保存關(guān)于報(bào)頭、路徑和腳本位置的信...
摘要:在我之前寫(xiě)的中源碼的深究和理解一文中解釋了如何支持多線程主要通過(guò)兩個(gè)類(lèi)來(lái)實(shí)現(xiàn)和在中有兩個(gè)屬性和后者用來(lái)獲取線程從而區(qū)分不同線程發(fā)來(lái)的請(qǐng)求這次要說(shuō)的是如何開(kāi)啟多線程先從這個(gè)方法看起會(huì)進(jìn)入這個(gè)函數(shù)經(jīng)過(guò)判斷和設(shè)置后進(jìn)入這個(gè)函數(shù)看下源碼 在我之前寫(xiě)的《flask中current_app、g、request、session源碼的深究和理解》一文中解釋了flask如何支持多線程主要通過(guò)兩個(gè)類(lèi)來(lái)實(shí)現(xiàn)...
今天給大家獻(xiàn)上登錄注冊(cè)接口開(kāi)發(fā),是基于token驗(yàn)證的。咱們閑言少敘,進(jìn)入正題! 首先看一下數(shù)據(jù)庫(kù)模型: #pip install passlib from passlib.apps import custom_app_context as pwd_context class Shop_list(db.Model): __tablename__ = shop_list userNa...
閱讀 3044·2021-11-02 14:40
閱讀 854·2019-08-30 15:53
閱讀 1273·2019-08-30 15:53
閱讀 3269·2019-08-30 13:53
閱讀 3313·2019-08-29 12:50
閱讀 1142·2019-08-26 13:49
閱讀 1874·2019-08-26 12:20
閱讀 3672·2019-08-26 11:33