如何将++ var放在heredoc字符串中

时间:2014-03-11 21:55:28

标签: php operators heredoc

我有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 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没有解决方案。最好使用字符串连接和引号。如果heredoc字段中有一个长文本,最好的方法是使用数组。

2 个答案:

答案 0 :(得分:1)

您无法在heredoc样式中编写表达式,只需打印变量而无需任何其他操作。

答案 1 :(得分:1)

使用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";

Output

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...]