Heim > Artikel > Backend-Entwicklung > PHP 8.2 unterstützt nicht mehr die Verwendung von ${} zum Einfügen von Variablen in Strings
Die PHP-Community hat Ende April einen Vorschlag mit nur einer negativen Stimme angenommen. Der Inhalt des Vorschlags besteht darin, dass in der kommenden PHP 8.2 die Syntax der Verwendung von ${} zum Einfügen von Variablen in einen String nicht mehr unterstützt wird (. als veraltet markiert), und diese Syntax wurde in PHP 9 entfernt.
Derzeit kann PHP Variablen in Zeichenfolgen mit doppelten Anführungszeichen ("
) und Heredoc auf folgende Weise einfügen. "
) 和 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}
"$foo"
"{$foo}"
$
-Symbol hinzu: „${foo}“
(string) ${expr}
var_dump("{$:func()}")🎜 Zu den Auswirkungen dieses Vorschlags äußerte sich Ilija Tovilo auf Packagegist. Die Analyse der Top 1000 Repositories zeigt dies Die obige 3-Syntax wurde 267-mal verwendet und 4 nur 0-mal dass viele andere Programmiersprachen ebenfalls die Syntax
${foo}
verwenden, um Variablen in Zeichenfolgen einzufügen, wie z. B. Bash und JavaScript (in Template-Literalen), sich jedoch genauso verhalten wie in Template-Literalen In PHP bedeutet diese Syntax die Definition veränderlicher Variablen. In der aktuellen Form von PHP sind die Optionen 3 und 4 für andere Zwecke nicht nützlich Bei ähnlicher Syntax sind die beiden Verhaltensweisen völlig unterschiedlich und daher verwirrend. 🎜🎜In Zukunft hofft Ilija Tovilo, die folgende Syntax zu unterstützen: 🎜rrreee🎜 Er glaubt, dass, wenn Sie sich dafür entscheiden, zuerst weniger entfernt werden müssen spezifische Syntax. Nützliche Optionen, um weitere Verwirrung zu vermeiden. Dies möchte Ilija Tovilo mit der Einreichung dieses RFC erreichen. 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜Das obige ist der detaillierte Inhalt vonPHP 8.2 unterstützt nicht mehr die Verwendung von ${} zum Einfügen von Variablen in Strings. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!