Heim  >  Artikel  >  Backend-Entwicklung  >  PHP 8.2 unterstützt nicht mehr die Verwendung von ${} zum Einfügen von Variablen in Strings

PHP 8.2 unterstützt nicht mehr die Verwendung von ${} zum Einfügen von Variablen in Strings

青灯夜游
青灯夜游nach vorne
2022-05-11 11:33:373741Durchsuche

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.

"PHP

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}

Ilija, der Entwickler, der den Vorschlag eingereicht hat, glaubt Tovilo Die 1. und 2. Methode haben ihre eigenen Vor- und Nachteile, und die 4. Methode hat eine völlig unterschiedliche Semantik (Variablenvariablen). , schlägt der von Ilija Tovilo eingereichte RFC vor, die Syntax von 3 und 4 oben in PHP 8.2 zu verwerfen und in PHP 9.0 zu entfernen. 🎜
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:OSC开源社区. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen