有关php循环流的问题

时间:2018-03-24 18:04:51

标签: php if-statement break

我有一个foreach循环 我正在尝试找到匹配项,如果找到匹配项,则可以跳过foreach循环 我在条件中使用了break语句 现在我怀疑如果条件是假的那么它继续foreach执行? 任何人都可以澄清我的怀疑吗?

这是我的代码

foreach ($s->find('div#results', 0)->find('div.result') as $lifirsts) {

            $name1= $lifirsts->find('h4',0)->plaintext;
            $desc1=$lifirsts->find('span.description',0)->plaintext;
            $desc1=trim($desc1);
            $desc1=  strip_tags($desc1);
            $name1=trim($name1);
            $name1=  strip_tags($name1);

            if (strpos($name1,$exactsearch)!== false || strpos($desc1,$exactsearch)!== false ) {
               //$counter_exact++;

                $flag++;

                break;

            }
        }

2 个答案:

答案 0 :(得分:0)

如果您只想在找到匹配时终止循环执行(例如,条件为真,则使用以下优化版本)

foreach ($s->find('div#results', 0)->find('div.result') as $lifirsts) {

            $name1= $lifirsts->find('h4',0)->plaintext;
            $desc1=$lifirsts->find('span.description',0)->plaintext;
            $desc1=trim($desc1);
            $desc1=  strip_tags($desc1);
            $name1=trim($name1);
            $name1=  strip_tags($name1);

            if (strpos($name1,$exactsearch) || strpos($desc1,$exactsearch))
            {
               //$counter_exact++;
                $flag++;
                break;
            }
        }

答案 1 :(得分:0)

是的,如果if语句为false,那么它将继续循环...