成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

$_REQUEST 詳解

fai1017 / 4620人閱讀

摘要:設(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

相關(guān)文章

  • ThinkPHP5之 _initialize() 初始化方法詳解

    摘要:延伸如果子類(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,在之前...

    Jinkey 評(píng)論0 收藏0
  • PHP 的 $_SERVER詳解

    摘要:導(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)頭、路徑和腳本位置的信...

    worldligang 評(píng)論0 收藏0
  • PHP 的 $_SERVER詳解

    摘要:導(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)頭、路徑和腳本位置的信...

    seanlook 評(píng)論0 收藏0
  • flask如何開(kāi)啟多線程詳解

    摘要:在我之前寫(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)...

    Yangder 評(píng)論0 收藏0
  • 干貨!flask登錄注冊(cè)token驗(yàn)證接口開(kāi)發(fā)詳解

    今天給大家獻(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...

    yimo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<