-1

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

                                             |
                                            \|/
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 each 循环吗?

4

4 回答 4

2

使用时

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

它将最后出现的值存储在$errors->get_error_codes()as 中$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获取该数组中的最后一个元素

于 2013-07-05T12:07:34.917 回答
1

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

于 2013-07-05T12:12:05.030 回答
1

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

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

不是每个人都知道这种行为,它可能会导致意想不到的结果。

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

您可以使用 break 来中断循环关键词。您还可以使用continue关键字跳过循环的迭代。

于 2013-07-05T12:19:55.087 回答
1

您可以使用Break ;打破循环并继续;如果您只想中断当前迭代

于 2013-07-05T12:09:10.817 回答