如何把++var在文件字符串


How to put ++var in heredoc string

我有heredoc字符串,我想把++$var放入字符串。我的代码实际上要复杂得多,但它看起来像这样:

t=0;
for(i=1;i<=20;i++){
echo <<<EOT
{++$t} somestring {$i}
{++$t} otherstring {$i}
{++$t} anotherstring {$i}
{++$t} nextstring {$i}
{++$t} endstring {$i}
EOT;
}

for循环是一个有5行编号的列表,连续重复。每5行包含来自循环的相同数字$i。但++$t不能这样工作。知道怎么让它运行吗?

预期输出:

1 somestring 1
2 otherstring 1
3 anotherstring 1
4 nextstring 1
5 endstring 1
6 somestring 2
7 otherstring 2
8 anotherstring 2
9 nextstring 2
10 endstring 2
11 somestring 3
...

更新(感谢回复):这里没有解决办法。最好使用字符串连接和引号。如果heredoc字段中有很长的文本,最好的方法是使用array。

用concat方法代替:

<?php
$array = array(
    'somestring',
    'otherstring',
    'anotherstring',
    'nextstring',
    'endstring'
);
$count = 0;
for ($i2 = 1; $i2 <= 20; $i2++)
    for ($i = 0; $i < count($array); $i++)
        echo ++$count . ' ' . $array[$i] . ' ' . $i2 . "'n";
输出:

1 somestring 1
2 otherstring 1
3 anotherstring 1
4 nextstring 1
5 endstring 1
6 somestring 2
7 otherstring 2
8 anotherstring 2
9 nextstring 2
10 endstring 2
11 somestring 3
[..truncated...]

你不能在herdoc样式中编写表达式,你可以直接打印变量而不需要任何额外的操作