我有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字段中有一个长文本,最好的方法是使用数组。
答案 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";
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...]