第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

查詢字符串可以包含字符串以外的任何內(nèi)容嗎?

查詢字符串可以包含字符串以外的任何內(nèi)容嗎?

PHP
Helenr 2023-09-22 14:49:19
我正在工作中從事一個(gè)項(xiàng)目,并發(fā)現(xiàn)了以下代碼:$queryStringValue = $_GET['var'];if ( is_string($queryStringValue) ){    // Do something.}我的問題:調(diào)用 is_string() 來檢查查詢字符串值是否是字符串完全沒有必要嗎?根據(jù)定義,“查詢字符串”使我相信數(shù)據(jù)類型只能是字符串,從而使對 is_string() 的調(diào)用變得多余。我是對的嗎?或者有時(shí)可以在查詢字符串中傳遞不同的數(shù)據(jù)類型?感謝您的任何見解!
查看完整描述

2 回答

?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

根據(jù) PHP 手冊中“確定變量類型”下的外部源變量:

HTTP 是一種文本協(xié)議,大多數(shù)(如果不是全部)來自超全局?jǐn)?shù)組的內(nèi)容(例如 $_POST 和 $_GET)將保留為字符串。PHP 不會嘗試將值轉(zhuǎn)換為特定類型。

同樣,在手冊的常見問題解答:HTML 表單中的數(shù)組中,我們讀到了數(shù)組:

要將<form>結(jié)果作為數(shù)組發(fā)送到 PHP 腳本,您可以像這樣 命名<input>,<select>或元素:<textarea><input name="MyArray[]" /> ...

這將變成一個(gè)查詢字符串?MyArray[]=foo&MyArray[]=bar等,可用作$_GET['MyArray'][0]$_GET['MyArray'][1]。您還可以使用命名鍵;查詢?var[x]=one&var[y]=two將產(chǎn)生關(guān)聯(lián)數(shù)組$_GET['var] = ['x' => 'one', 'y' => 'two'];并將?var[x][]=deep成為$_GET['var']['x'] = ['deep']

此外,該手冊還$_GET注明了以下內(nèi)容:

注意: GET 變量通過urldecode()?傳遞。

然后,查看簽名urldecode

urldecode?(?string?$str?)?:?string

換句話說,用于預(yù)處理$_GET值的函數(shù)接受一個(gè)字符串并返回一個(gè)字符串。顯然,當(dāng)傳入一個(gè)數(shù)組時(shí),它將應(yīng)用于urldecode該數(shù)組的每個(gè)字符串值。(如果有人想找到負(fù)責(zé)生成 的 PHP 源代碼部分$_GET,請分享鏈接,將其包含在此處。)

請注意,空值(例如 in??foo&bar=1)不會導(dǎo)致[foo] NULL,而是導(dǎo)致 in?,[foo] string(0) ""換句話說,結(jié)果為零長度string。我們再次得到[bar] string(1) "1".?沒有將值類型轉(zhuǎn)換getpost整數(shù)、浮點(diǎn)數(shù)、布爾值或 null。

總之,接收到的可能數(shù)據(jù)類型$_GETstringand?array(字符串;或進(jìn)一步的數(shù)組;最后的標(biāo)量“葉子”是字符串)。當(dāng)然,如果你在 PHP 代碼中顯式聲明$_GET['foo'] = nullor?$_GET['bar'] = 1,那么就會有整數(shù)和空值。上述內(nèi)容適用于 PHP 從外部源解析的變量。


更新:雖然上述內(nèi)容對于從查詢字符串解析的所有都是正確的,但對于PHP 從查詢字符串中提取的鍵來說情況有所不同。假設(shè)以下 URL:

test.php?101=foo&202=bar&dev=ops

現(xiàn)在,var_dump(array_keys($_GET))數(shù)字鍵會返回什么?整數(shù),而不是字符串:

array(3)?{
????[0]?·?int(101)
????[1]?·?int(202)
????[2]?·?string(3)?"dev"}

這符合 PHP數(shù)組鍵的標(biāo)準(zhǔn)轉(zhuǎn)換:“包含有效十進(jìn)制整數(shù)的字符串,除非數(shù)字前面有 + 號,否則將轉(zhuǎn)換為整數(shù)類型。?”。然而,以下關(guān)鍵轉(zhuǎn)換不會發(fā)生:“浮點(diǎn)數(shù)也轉(zhuǎn)換為整數(shù),這意味著小數(shù)部分將被截?cái)??!?因?yàn)椋ㄈ鐏碜酝獠吭吹淖兞恐兴觯?em>“[外部]變量名稱中的點(diǎn)和空格將轉(zhuǎn)換為下劃線?!?/em>


外部變量類型轉(zhuǎn)換:總結(jié)

  • 查詢字符串的將始終是strings或以字符串作為最終標(biāo)量值的數(shù)組(數(shù)組的)。

  • 查詢字符串的將始終是strings,除了被轉(zhuǎn)換為整數(shù)的整數(shù)(無符號正數(shù):3,-3符號負(fù)數(shù):) 。


查看完整回答
反對 回復(fù) 2023-09-22
?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

查詢字符串本身是 a string,但其中的變量可以解析為stringor array

url.com?var=123=> var 是字符串

url.com?var[]=123&var[]=321=> var 是一個(gè)數(shù)組


查看完整回答
反對 回復(fù) 2023-09-22
  • 2 回答
  • 0 關(guān)注
  • 128 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號