繁体   English   中英

在Heredoc中使用增量运算符

[英]Use of increment operator in heredoc

我想通过使用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不支持增量操作。

复杂/卷曲的变量语法{$var…}仅允许变量访问表达式,而本身不允许PHP表达式。

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

{ + }本身内不能有算术运算符。 但是只能在[…](…)使用。

*

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

$func = "htmlspecialchars";  // or any other no-op function
echo <<<HEREDOC
    counter = {$func($counter++)}
HEREDOC;

您可以在var卷曲语法中轻松使用完整表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM