首頁 > 後端開發 > php教程 > PHP 如何處理來自 GET、POST 和 Cookie 的變數名稱中的句點?

PHP 如何處理來自 GET、POST 和 Cookie 的變數名稱中的句點?

Susan Sarandon
發布: 2024-12-08 22:44:10
原創
680 人瀏覽過

How Does PHP Handle Periods in Variable Names from GET, POST, and Cookies?

PHP 變數名稱和字元替換

在PHP 中,通常的做法是使用句點/點(. )在他們的名字中。但是,PHP 會自動用底線 (_) 取代這些點。此行為是由於 PHP 使用點來連接變數名稱而引起的。

說明

根據 PHP 文檔,變數名稱中不允許使用點字元 (.)。這可能會導致連接變數時出現意外行為,如下面的範例 PHP 程式碼所示:

$varname.ext;  /* invalid variable name */
登入後複製

在上面的範例中,PHP 會將右側 (ext) 解釋為字串。為了防止這種情況,PHP 將傳入變數名稱中的點替換為底線。

後果

此替換行為不僅影響 GET 和 POST 參數,也會影響 cookie。例如,如果設定了名為「x.y」的 cookie,PHP 會自動將其內部表示形式變更為「x_y」。

雖然不可能阻止 PHP 的點到下劃線替換,有一些解決方法可以檢索帶點的原始變數名稱。一種解決方案是在讀取變數後使用 str_replace() 函數將下劃線替換回點,如awnerd評論中所建議的。

以上是PHP 如何處理來自 GET、POST 和 Cookie 的變數名稱中的句點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板