我有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样式中编写表达式,你可以直接打印变量而不需要任何额外的操作