我想通过使用Heredoc中的增量运算符来增加变量的值。我当前的代码如下:
$counter = 0;
for($i = 0; $i<10; $i++):
echo <<< EOT
$counter++ <br/>
EOT;
endfor;
它的输出是...
0++
0++
.
.
平均后递增运算符不起作用。
我也尝试了预增量,如下所示...
echo <<< EOT
++$counter <br/>
EOT;
它的输出是...
++0
++0
.
.
平均预增运算符也不起作用。
我还试图将增量操作放在花括号内,如下所示...
echo <<< EOT
{++$counter} <br/>
EOT;
但是再没有运气了。输出是...
{++0}
{++0}
.
.
我也在Google上进行了搜索,但没有发现任何有用的信息。
我知道是否可以在heredoc之前增加价值,然后可以在here doc中正确打印
$counter = 0;
for($i = 0; $i<10; $i++):
++$counter;
echo <<< EOT
$counter <br/>
EOT;
endfor;
它工作正常。
但是我想在Heredoc中使用增量运算符,就像我们用echo
用单引号或双引号引起来的情况一样。
但是看来heredoc不支持增量操作。
答案 0 :(得分:4)
complex/curly variable syntax {$var…}
仅允许变量 access 表达式,而本身不允许PHP表达式。
{$var[…]}
{$var(…)}
{$var->prop…}
{${stat::$lookup}}
{
+ }
内不能有算术运算符。但只能在[…]
或(…)
之间并用。
一种常见的解决方法是利用变量函数名称:
$func = "htmlspecialchars"; // or any other no-op function
echo <<<HEREDOC
counter = {$func($counter++)}
HEREDOC;
在这里您可以轻松地使用卷曲var语法使用完整表达式。