0

我有一个用于搜索和比较结果的简单系统。

在这种情况下,我会得到 2 个结果,一个是好的,一个是坏的。

为此,我使用以下代码:

for ($i=0;$i<sizeof("search.txt");$i++)
{

    if ($_REQUEST['search']=="ok" && $_REQUEST['car']=="")
    {
        print "ok";
        break;
        /// show results;
    }

    if ($_REQUEST['search']=="ok" && $_REQUEST['car']=="" && $_REQUEST['city']=="")
    {
        print "ok";
        break;
        /// show results;
    }
}

问题是结果是否必须显示2个结果,“break”行停止循环,但如果我不放break,它会显示其他条件“if”的结果,我放了一个简单的例子,因为在这个循环中我有很多条件“如果”,因此我需要在每种情况下显示所有结果并为每个条件中断,但是将循环中断并让我继续循环

我的问题是我是否可以使用 break 或需要使用其他功能让我这样做,因为我需要这样做

感谢和问候

4

2 回答 2

2

break适用于 case 语句和循环。由于您没有使用案例,因此break会破坏 foreach。您可能希望continue继续进行下一次迭代。

例如

for(...) {
   if (something) {
      ...
      continue; // "break" this loop iteration and move on to the next one.
   }
   if (something else) {
       ...
       break; // kills the foreach and moves down to the "stuff after loop" below.
   } 
   switch (this_and_that) {
      case 'a': ...; break; // breaks out of the switch and moves to "stuff after switch"
      case 'b': ...; break; // ditto
   }
   ... stuff after switch ...
}

... stuff after loop ...
于 2013-03-06T21:03:13.260 回答
0

我会这样:

if ($_REQUEST['search']=="ok" && $_REQUEST['car']=="")
{
print "ok";
   if ($_REQUEST['city']=="")
   {
   break;
   }
break;
}

因为一旦第一个 if 语句为真,第二个将只需要 'city' 为真。

于 2013-03-06T21:04:28.273 回答