我可以在PHP中终止foreach循环吗?

时间:2013-07-05 12:04:31

标签: php loops foreach

给定的代码段(有和没有;)之间是否有任何区别:

                                             |
                                            \|/
foreach($errors->get_error_codes() as $error);
        if( strpos(ucwords(str_replace('_',' ',$error)),'nvalid Username'))

foreach($errors->get_error_codes() as $error)
        if( strpos(ucwords(str_replace('_',' ',$error)),'nvalid Username'))

实际上它们都提供相同的输出。所以我可以在语句之前终止for循环。

4 个答案:

答案 0 :(得分:2)

使用

foreach($errors->get_error_codes() as $error);

它会将$errors->get_error_codes()中的最后一个值存储为$error,然后检查条件以及是否使用

foreach($errors->get_error_codes() as $error)
            if( strpos(ucwords(str_replace('_',' ',$error)),'nvalid Username'))

然后每个$errors->get_error_codes()值将被视为$error并检查条件。

简单

foreach($errors->get_error_codes() as $error);

将循环,但$error获取该数组中的最后一个元素

答案 1 :(得分:1)

你可以使用 Break; 来打破循环,继续; 如果你想打破当前的迭代

答案 2 :(得分:1)

您获得相同的输出,因为$ errors数组只包含一个条目。

答案 3 :(得分:1)

foreach($errors->get_error_codes() as $error);

此行将最后一个元素存储在$error变量中,并且没有{}块;

并非所有人都知道此行为,并且可能会导致意外结果。

另一行仅影响下一行,因为没有由{}确定的代码块。

您可以使用 break; 关键字来中断循环。您还可以使用继续关键字跳过循环迭代。