原本以為 RFC 裡面有的定義 reserve word,但是找了半天找不到。最後原因是 PHP 為了支援 register_global,但是 PHP 變數名稱又不允許使用 . (dot) 當作名稱的一部分,最後就自動轉為 _ (underscore)。
這個行為不管有沒有啟動 register_global 都會出現,即使上了 PHP 7.2 都已經不支援了,這個行為仍然存在。
ref:
後來做了個簡單的測試,在 HTTP POST 依序送出二個 field data:
a.b=100&a_b=200
這時候再印出 $_POST:
var_dump($_POST);
array(1) {
'a_b' =>
string(3) "200"
}
所以後面的會打贏前面的 ... (所以「世界上的戰爭沒任何人贏了,只有戰爭贏了」)
沒有留言:
張貼留言
除非必要,請不要在回覆時留下您的敏感資訊 (電話、email、地址等)