php 如何退出foreach 循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 如何退出foreach 循环相关的知识,希望对你有一定的参考价值。

如果是退出当前项,继续下一个循环使用关键字:continue;

如果是退出整个foreach,使用关键字:break;

<?php
foreach (range(1, 10) as $key => $value) 
if ($value%2) 
continue;

if ($value>8) 
break;

var_dump($value);

?>

参考技术A 如果仅仅是想退出foreach循环,可以使用break关键字.本回答被提问者和网友采纳 参考技术B 可以使用exit; 参考技术C 使用exit()函数或者使用break语句

如何在 foreach 循环中访问 PHP 中的变量?

【中文标题】如何在 foreach 循环中访问 PHP 中的变量?【英文标题】:How do I access a variable in PHP inside a foreach loop? 【发布时间】:2021-06-01 18:19:52 【问题描述】:

我正在 webscraping 使用 php 中的 Goute Library 来自 this link 的表格。

下面是我的代码

    $client = new Client();
    $crawler = $client->request('GET', 'https://www.worldometers.info/world-population/population-by-country/');
    $crawler->filter('#example2 tbody')->filter('tr')->each(function ($node) 

       $country = new Country(); // I have declared country here.
       $test = "TOday";   //I have a variable Test

        $node->filter('td')->each(function ($td,$i)

            switch ($i)
                case 1:
                    $country_name = $td->text();

                    echo $test; //I cannot access test here.
                    $country->name = $country_name; //I am not able to access the declared Country here

                    break;
                case 2:
                    //todo case 2
                    break;
                case 3:
                    //todo case 3
                    break;
                case 4:
                    //todo case 4
                    break;
            
        );

        echo "<br><br><br>";

    );

我的代码包含两个 foreach 循环。在第一个循环中,我声明了我想在第二个循环中访问的变量 $test 和 $country。

但是,每当我尝试访问变量时,我都会收到错误消息:

“未定义变量:测试”

下面是 PhpStorm 的截图。

为什么我无法访问这些已明确声明甚至初始化的变量?

【问题讨论】:

【参考方案1】:

如果你想在你的函数 clouser 中访问这个变量,你应该告诉那个函数使用它们:

 $crawler->filter('#example2 tbody')->filter('tr')->each(function ($node)use( $country) 

   $country = new Country(); // I have declared country here.
   $test = "TOday";   //I have a variable Test

如果您想使用另一个变量,只需将其添加到函数参数中:

->each(function ($node)use( $country,$secondVariable,$thirdVariable ...)

【讨论】:

以上是关于php 如何退出foreach 循环的主要内容,如果未能解决你的问题,请参考以下文章

如何在 foreach 循环中创建数组 - php? [关闭]

PHP中如何使用foreach结构遍历数组?

返回 false 不退出 foreach 循环

php foreach怎样获取当前的循环次数

在承诺完成之前退出 forEach

如何在PHP的foreach循环中重复特定的迭代?