在 heredoc 中使用增量运算符
Use of increment operator in heredoc
我想使用 heredoc 中的增量运算符来增加变量的值。我当前的代码如下...
$counter = 0;
for($i = 0; $i<10; $i++):
echo <<< EOT
$counter++ <br/>
EOT;
endfor;
它的输出是...
0++
0++
.
.
意味着 post-增量运算符不起作用。
我也尝试过预增量,如下所示...
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不支持自增操作。
complex/curly variable syntax {$var…}
只允许变量 访问 表达式,但不允许 PHP 表达式本身。
- 例如
{$var[…]}
- 或
{$var(…)}
- 和
{$var->prop…}
- 和
{${stat::$lookup}}
{
+ }
本身不能有算术运算符。但只能在 […]
或 (…)
之间使用。
一个常见的解决方法是使用变量函数名称:
$func = "htmlspecialchars"; // or any other no-op function
echo <<<HEREDOC
counter = {$func($counter++)}
HEREDOC;
您可以在 curly var 语法中轻松使用完整表达式的位置。
我想使用 heredoc 中的增量运算符来增加变量的值。我当前的代码如下...
$counter = 0;
for($i = 0; $i<10; $i++):
echo <<< EOT
$counter++ <br/>
EOT;
endfor;
它的输出是...
0++
0++
.
.
意味着 post-增量运算符不起作用。
我也尝试过预增量,如下所示...
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不支持自增操作。
complex/curly variable syntax {$var…}
只允许变量 访问 表达式,但不允许 PHP 表达式本身。
- 例如
{$var[…]}
- 或
{$var(…)}
- 和
{$var->prop…}
- 和
{${stat::$lookup}}
{
+ }
本身不能有算术运算符。但只能在 […]
或 (…)
之间使用。
一个常见的解决方法是使用变量函数名称:
$func = "htmlspecialchars"; // or any other no-op function
echo <<<HEREDOC
counter = {$func($counter++)}
HEREDOC;
您可以在 curly var 语法中轻松使用完整表达式的位置。