这是有效的循环PHP编码吗?

时间:2011-04-19 02:20:32

标签: php loops

我刚开始学习编码和PHP,所以我一直在练习到目前为止我所学到的知识,但不确定我的编码是多么高效或低效。我将非常感谢您对以下循环的评论。这是一个简单的循环,并注释了一个更简单的例子。如果我能更好地编写代码,我将不胜感激。

//Initialize page
    $startpage = isset($_POST['page']) ? $_POST['page'] : 1;
    $endpage = 11;

    //Loop through the start and end of the page
    while($startpage < $endpage) {

        if(isset($_POST['submit'])) {
            $startpage=$startpage+1;
        }

        if($startpage < $endpage) {
            break;
        }
    }

    //Alternative option
    // if(isset($_POST['submit'])) {

        // if($startpage < $endpage) {
            // $startpage = $startpage + 1;
        // }    
    // }

修改

我执行$ _POST检查的原因是因为我只想让用户在点击提交后从一个页面移动到下一个页面。

3 个答案:

答案 0 :(得分:2)

根据你的编码,不,它非常低效; p。 您可以在技术上用

替换您的代码
if(isset($_POST['submit']) && $startpage < $endpage){
    $startpage = $endpage;
}

因为你的逻辑实际上并没有做任何事情,只是增加$startpage直到它等于$endpage。作为一个小窍门,要增加1,你可以$startpage++;

您的评论//Loop through the start and end of the page也不应该存在,因为它没有任何意义,如果您的评论不能真正理解IMO的内容,那么最好不要发表评论。它解释了你想要做什么,但我仍然感到困惑:P。

就像其他人也说的那样,你似乎并不真正理解while循环是如何工作的,但如果你能断言,我会把它收回来:)。

以下是我对while循环的解释。

while循环会重复自身,因为您放在旁边的条件为真。 所以,如果你说while($number is less than 11)然后每次将$ number增加一个,那么手动break;时你不需要$number is less than 11循环,因为这就是循环自动执行的操作。

答案 1 :(得分:1)

我不完全确定你要做什么,但看起来for循环更具可读性。

$startpage = isset($_POST['page']) ? $_POST['page'] : 1;
$endpage = 11;
for($i=$startpage; $i<$endpage; $i++)
  {
  // do something
  }

也许这是个人偏好,但是当你想循环遍历一系列结果,或者你想在做其他事情之前继续检查另一个函数的结果时,它会更有用。

具体评论您的代码:

  1. 您可以将$startpage=$startpage+1;重写为$startpage++;
  2. isset($_POST['submit'])会在每次循环运行时给出相同的答案,因此在运行循环之前将结果设置为变量。

答案 2 :(得分:0)

我不确定你在这里要做什么。由于if语句,该循环只运行一次。如果您要尝试将页码从$startpage打印到$endpage,则可以这样做:

$startpage = isset($_POST['page']) ? $_POST['page'] : 1;
$endpage = 11;

while($startpage < $endpage) {
    $startpage=$startpage + 1;
}

实际上,你为什么要在这里查看$_POST['submit']