PHP 社群4 月底通過了一項只有一張反對票的提案,提案內容是在即將發布的PHP 8.2 中,不再支援使用 ${} 在字串中插入變數的語法(標記為棄用狀態),並在PHP 9 刪除該語法。
目前PHP 可透過以下方式在雙引號("
) 和heredoc 的字串中插入變數。
直接插入變數:
「$foo」
#在變數外加上花括號:
「{$foo} 」
在
$
符號後面加上花括號:「${foo}」
定義可變的變數語法(
“${expr}”
,等同於(string) ${expr}
提交該提案的開發者Ilija Tovilo 認為,第1 和第2 種方式各有利弊。第3 和第4 種寫法則很容易混淆,並且4 具有完全不同的語義(variable variables),極少使用這種方式在字串中插入變數。
因此,Ilija Tovilo 提交的RFC 正是建議在PHP 8.2 中棄用上述3 和4 的語法,並在PHP 9.0 中將其刪除。
var_dump("${foo}"); // Deprecated: Using ${} in strings is deprecated var_dump("${(foo)}"); // Deprecated: Using ${} (variable variables) in strings is deprecated
對於此提案的影響,Ilija Tovilo 透過對Packagegist 上的Top 1000 倉庫進行分析得出:上述3 的語法有267 次被使用,4 只有0 次。
分析原始碼:https://gist.github.com/iluuu1994/05427dd74100af8e41ebff3d4201742c
Ilija Tovilo 認為,許多其他程式語言也使用 ${foo}## 變量,例如bash 和JavaScript(在模板字面量Template Literals 中)。但它們的行為與在PHP 中的不同。在PHP 中,這種語法意味著定義可變的變量。在JavaScript 中,它支援任意表達式。在PHP 目前的形式中,上述選項3 和4 的用途有限,並且對於使用其他相似語法的程式語言的開發者來說,兩者行為完全不同,因此會感到困惑。
var_dump("{$:func()}")他認為,如果決定這樣做,那麼有必要先刪除不太有用的選項,以避免進一步增加混亂。這就是Ilija Tovilo 提交此RFC 希望實現的目標。推薦學習:《
PHP影片教學》
以上是PHP 8.2 不再支援字串中用${}插入變數了的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

記事本++7.3.1
好用且免費的程式碼編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。