-2

我想替换这段代码:

$html=<<<EOF

    <p>{${$var[i]}[name]}</p>
    <p>{${$var[i+1]}[name]}</p>
    <p>{${$var[i+2]}[name]}</p>
    <p>{${$var[i+3]}[name]}</p>

EOF;

像这样:

$html=<<<EOF

    <p>{${$var[new_i]}[name]}</p>
    <p>{${$var[new_i]}[name]}</p>
    <p>{${$var[new_i]}[name]}</p>
    <p>{${$var[new_i]}[name]}</p>

EOF;

并保留第一段代码的功能。

有没有可能?

4

4 回答 4

5

后增量救援!

$html=<<<EOF

    <p>{${$var[$i++]}[name]}</p>
    <p>{${$var[$i++]}[name]}</p>
    <p>{${$var[$i++]}[name]}</p>
    <p>{${$var[$i++]}[name]}</p>

EOF;

尽管如果您只是要$html在此之后立即显示,那么这样做可能会更好:

<?php for($i = 0; $i < $max_i; ++$i):?>
<p><?php echo ${$var[$i]}[name] ?></p>
<?php endfor;?>
于 2012-07-20T18:01:26.640 回答
4

这就是增量器的用武之地。

$i++采取任何行动后将值加一。

++$i将在采取任何操作之前将值加一。

 $html=<<<EOF

     <p>{${$var[$i++]}[name]}</p>
     <p>{${$var[$i++]}[name]}</p>
     <p>{${$var[$i++]}[name]}</p>
     <p>{${$var[$i++]}[name]}</p>

EOF;

例子:

$i = 0;
echo $i++; // echo's 0

$i = 0;
echo ++$i; // echo's 1
于 2012-07-20T18:01:41.333 回答
2

您可以只传入,i++以便它每次出现时都会增加。

于 2012-07-20T18:01:33.680 回答
-2
$new_i = 0;

$html=<<<EOF

    <p>{${$var[$new_i]}[name]}</p>
    <p>{${$var[++$new_i]}[name]}</p>
    <p>{${$var[++$new_i]}[name]}</p>
    <p>{${$var[++$new_i]}[name]}</p>

EOF;

在变量的左侧使用++将在使用该变量之前将值增加一。

于 2012-07-20T18:01:43.877 回答