La communauté PHP a adopté une proposition avec un seul vote négatif fin avril. Le contenu de la proposition est que dans le prochain PHP 8.2, la syntaxe d'utilisation de ${} pour insérer des variables dans une chaîne ne sera plus prise en charge ( marqué comme obsolète) , et cette syntaxe a été supprimée dans PHP 9.
Actuellement, PHP peut insérer des variables dans des chaînes avec des guillemets doubles ("
) et heredoc des manières suivantes. "
) 和 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}"
< /li>
$
: “${foo}”
(string) ${expr}
var_dump("{$:func()}")
🎜Analyse du code source : https://gist.github.com/iluuu1994/05427dd74100af8e41ebff3d4201742c🎜🎜Ilija Tovilo croit. que de nombreux autres langages de programmation utilisent également la syntaxe
${foo}
pour insérer des variables dans des chaînes, telles que bash et JavaScript (dans les littéraux de modèle), mais ils se comportent de la même manière que dans les littéraux de modèle différents. en PHP. En PHP, cette syntaxe signifie définir des variables mutables. En JavaScript, elle prend en charge les expressions arbitraires. Dans la forme actuelle de PHP, les options 3 et 4 ci-dessus sont d'une utilité limitée et ne sont pas utiles pour les développeurs de langages de programmation. avec une syntaxe similaire, les deux comportements sont complètement différents et donc déroutants 🎜🎜Dans le futur Ilija Tovilo espère supporter la syntaxe suivante : 🎜rrreee🎜 Il pense que si vous décidez de faire cela, il faudra d'abord supprimer le moins spécifique syntaxe. Options utiles pour éviter d’ajouter davantage de confusion. C'est ce qu'Ilija Tovilo espère réaliser en soumettant cette RFC. 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!