Php 增量运算符在herdoc中的应用

Php 增量运算符在herdoc中的应用,php,heredoc,Php,Heredoc,我想通过使用herdoc中的增量运算符来增加变量的值。我的当前代码如下所示 $counter = 0; for($i = 0; $i<10; $i++): echo <<< EOT $counter++ <br/> EOT; endfor; echo <<< EOT ++$counter <br/> EOT; echo <<< EOT {++$counter} <br/> E

我想通过使用herdoc中的增量运算符来增加变量的值。我的当前代码如下所示

$counter = 0;
for($i = 0; $i<10; $i++):
echo <<< EOT
    $counter++ <br/>
EOT;
endfor;
echo <<< EOT
   ++$counter <br/>
EOT;
echo <<< EOT
    {++$counter} <br/>
EOT;
“平均后增量”运算符不工作

我也尝试过预增量,如下所示

$counter = 0;
for($i = 0; $i<10; $i++):
echo <<< EOT
    $counter++ <br/>
EOT;
endfor;
echo <<< EOT
   ++$counter <br/>
EOT;
echo <<< EOT
    {++$counter} <br/>
EOT;
“平均预增量”操作符也不起作用

我也尝试过在花括号中加入增量操作,如下所示

$counter = 0;
for($i = 0; $i<10; $i++):
echo <<< EOT
    $counter++ <br/>
EOT;
endfor;
echo <<< EOT
   ++$counter <br/>
EOT;
echo <<< EOT
    {++$counter} <br/>
EOT;
我也在谷歌上搜索过,但没有找到任何有用的东西

我知道如果我可以在heredoc之前增加值,那么我可以在这里正确地打印它

$counter = 0;
for($i = 0; $i<10; $i++):
++$counter;
echo <<< EOT
    $counter <br/>
EOT;
endfor;
$counter=0;
对于($i=0;$i),只允许变量访问表达式,而不允许PHP表达式本身

  • 例如
    {$var[…]}
  • {$var(…)}
  • {$var->prop…}
  • {${stat::$lookup}

{
+
}
本身内不能有算术运算符。只能在与之一起使用的
[…]
(…)
之间有算术运算符

一种常见的解决方法是利用变量函数名:

$func = "htmlspecialchars";  // or any other no-op function
echo <<<HEREDOC
    counter = {$func($counter++)}
HEREDOC;
$func=“htmlspecialchars”//或任何其他无操作函数

echo
{$var}
实际上只适用于有限的变量访问表达式
例如,虽然这看起来像是一个抽象的例子,但你不能直接使用
$i
吗?所以,你发现herdoc不支持递增变量。你有问题吗?没有,我没有找到。我现在假设它。@mario我可以使用
$i
,但正确的名称可以增加代码的可读性。“在{+}本身中不能有算术运算符。但只能在[…]或(…)之间一起使用。”您能提供任何参考吗?请参阅手册链接。虽然这里只介绍了更多示例,但它列出了各种允许的表达式。