You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.2 heredoc中变量插值执行数学运算报错问题排查

PHP 8.2 Heredoc中数学运算插值的语法问题

问题代码

$a = 4; 
$b = 2;

$str = <<<EOT
$a + $b = {$a + $b}
EOT;

print $str;

报错信息

PHP Parse error: syntax error, unexpected token "+", expecting "->" or "?->" or "["

问题原因

Heredoc的大括号插值语法仅支持直接引用变量、对象属性或数组元素,无法直接解析大括号内的数学运算这类表达式。PHP解析器会把{$a + $b}拆成{$a}(变量$a)和后续的+ $b,导致语法错误。

解决方案

方案1:预计算结果到变量(推荐)

先把运算结果存入变量,再在Heredoc中引用变量,语法清晰且兼容性好:

$a = 4; 
$b = 2;
$sum = $a + $b; // 预计算运算结果

$str = <<<EOT
$a + $b = $sum
EOT;

print $str;

方案2:使用表达式插值的正确语法

在PHP 8.0+中,可通过${(表达式)}的语法直接插入运算结果:

$a = 4; 
$b = 2;

$str = <<<EOT
$a + $b = ${($a + $b)}
EOT;

print $str;

内容的提问来源于stack exchange,提问作者John Cowan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 03:42:37