首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并for和if语句

问合并for和if语句
EN

Stack Overflow用户
提问于 2018-10-30 10:24:10
回答 1查看 72关注 0票数 0

我一直在研究这是否可能,但我画了一个空白,我想知道是否有可能把这些优化到一起,如果声明在一起?干杯。

编辑(更新2):它们是代码的一个问题,而不是在页面中循环。

代码语言:javascript
复制
<?php
// calculate total number of pages
$total_pages = ceil($total_rows / $records_per_page);

// range of links to show
$range = 2;

// display links to 'range of pages' around 'current page'
$initial_num = $page - $range;
$condition_limit_num = ($page + $range)  + 1;
?>

    <ul class="pagination margin-zero">
<?php if ($page>1) : ?>
        <li>
            <a href='<?php echo $page_url; ?>page=1' title='Go to the first page.'>First Page</a>
        </li>
<?php endif; ?>

<?php
for ($x = min($initial_num, 0); $x <= max($condition_limit_num-1, $total_pages); $x++) :
    if ($x == $page) :
        ?>
        <li class='active'>
            <a href="#"><?php echo $x; ?> <span class="sr-only">(current)</span></a>
        </li>
    <?php else : ?>
        <li>
            <a href='<?php echo $page_url; ?>page=<?php echo $x; ?>'><?php echo $x; ?></a>
        </li>
        <?php
    endif;
endfor;
?>

<?php
if ($page<$total_pages) : ?>
        <li>
            <a href='<?php echo $page_url; ?>page=<?php echo $total_pages; ?>' title='Last page is <?php echo $total_pages; ?>'>
                Last Page
            </a>
        </li>
<?php endif; ?>
    </ul>
EN

回答 1

Stack Overflow用户

发布于 2018-10-30 10:53:18

当然,如果考虑到允许$x分配的最大值和最小值,则可以组合它们。

外部for循环将要求$x包含在间隔[0;$condition_limit_num]中。

如果您只查看for和第一个是否可以确定最小值必须大于零或initial_num,则可以使用initial_num和零的最小值。该限制的工作方式是相同的,使用条件_极限_num-1和total_pages的最大值作为最高可达值,即区间min($x,0);最大值($条件限制_num-1;$total_page)。

但是,如果您考虑到最内在的,如果您需要$x有一个特定的值($page)。这意味着,只有当$page包含在intervall ($x,0);max($$x_limit 1;$total_page)中时,这才是"true“--您可以将该检查缩减为单个if。

问题更新后的更新:

由于最内部的if也有一个其他路径,所以不能将循环简化为单个if:

代码语言:javascript
复制
<?php
for ($x = max($initial_num, 0); $x <= min($condition_limit_num-1, $total_pages); $x++)) :
    if($x == $page) :
        ?>
        <li class='active'>
            <a href="#"><?php echo $x; ?> <span class="sr-only">(current)</span></a>
        </li>
        <?php else : ?>
        <li>
            <a href='<?php echo $page_url; ?>page=<?php echo $x; ?>'><?php echo $x; ?></a>
        </li>
        <?php
    endif;
endfor;
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53062152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档