首页 > 解决方案 > foreach 和 php 中的替代语法在性能上有什么区别

问题描述

我正在尝试使用 php 中的 foreach 替代语法在 HTML 视图中显示超过 5000 个项目的数组,但它不起作用,但是使用基本语法,我没有问题。

我尝试使用 php.ini 中的 foreach 替代语法显示项目列表。我尝试使用 2000、2200、... 值直到 2400 值,它可以正常工作。超过 2400 个值,我的页面处理直到超时异常。

使用基本语法,它甚至可以处理超过 6000 个项目。

为什么这两种语法之间存在差异。

替代语法:

<table>
...
   <?php foreach ($list as $val): ?>
     <tr role="row">
        <td><?= $val->id ?></td>
        <td>
        <?php if($val->status == "CONFIRMED"): ?>
           confirmed
        <?php else: ?>
           unconfirmed
        <?php endif ?>
        </td>
     </tr>
   <?php endforeach ?>
...
</table>

基本语法:

<table>
...
<?php
foreach ($list as $val){
   echo '<tr role="row">';
   echo '<td>' . $val->id . '</td>';
   echo '<td>';
   if($val->status == "CONFIRMED"){
        echo 'confirmed';
   }else{
        echo 'unconfirmed';
   }
   echo '</td>';
   echo '</tr>';
}
?>
...
</table>

谢谢你的回答。

当数组包含超过 2500 个项目时,具有替代语法的代码永远不会完成。基本语法没有任何问题。

标签: phphtmlcodeigniterforeach

解决方案


推荐阅读