首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的PHP while()在while()里面,而while()却没有上升?

在PHP中,while()是一个循环结构,用于重复执行一段代码块,直到给定的条件不再满足为止。而在你提供的问题中,while()函数被嵌套在另一个while()循环中,但是没有提到while()没有上升的具体含义。根据你的描述,我理解为你希望while()循环内的代码能够影响到外部的while()循环。

在PHP中,变量的作用域是根据其定义的位置来确定的。如果在内部while()循环中定义了一个变量,它的作用域仅限于该循环内部。因此,无法直接在内部while()循环中定义的变量在外部while()循环中使用。

如果你希望内部while()循环中的代码能够影响到外部while()循环,你可以在外部while()循环之前定义该变量,并在内部while()循环中对其进行修改。这样,变量的作用域将扩展到外部while()循环中。

以下是一个示例代码:

代码语言:txt
复制
$counter = 0; // 在外部while()循环之前定义变量

while ($counter < 5) {
    $innerCounter = 0; // 在内部while()循环之前定义变量

    while ($innerCounter < 3) {
        echo "内部循环计数器: " . $innerCounter . "<br>";
        $innerCounter++;
        $counter++; // 修改外部while()循环中的变量
    }

    echo "外部循环计数器: " . $counter . "<br>";
}

在上述示例中,我们在外部while()循环之前定义了变量$counter,并在内部while()循环中对其进行了修改。这样,内部循环的计数器也会影响到外部循环的计数器。

需要注意的是,变量的作用域和生命周期是编程语言的基本概念,不仅仅适用于PHP,在其他编程语言中也存在类似的规则。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • php yield关键字以及协程的实现

    php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还有另外一种特殊对象...可能你在这发现了几个东西,和之前php完全不同的认知,如果你没发现,额,那我提出来吧 1:在调用函数返回的时候,可以发现for里面的语句并没有执行 2:在遍历一次的时候,可以发现调用函数,却没有正常的for...三:生成新任务以及杀死任务 现在新增了一个需求:当发送邮件给会员时,需要新增一个发送短信的子任务,当会员id大于200时则停止 (别问我为什么要这样做,我自己都不知道) 同时,我们可以利用YieldCall...,那为什么要用协程呢?...PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。

    1.4K20

    循环结构 if语句我替代语法

    php $i=0; while($i<10) { echo($i); $i++; } ?> do while: 通过这两者的比较,我得出了一个结论,就是while是符合条件在执行语句,do while是先执行在判断是否符合条件 这两个都一样,但是while就像我想结婚了,所以我去求家长父母的同意是吧,他们同意了我和李文的婚事我们才能结婚...,但是do while就有点不同了,他是私奔了呀,先结婚然后在慢慢跟各方家长说,家长同意了就行了一样的啦 问题:为什么都是执行10次,因为do while那里是$i++到10了啊就不符合条件了啊,所以才...10次啊,像是我明天要给你十块钱,我不管你今天你花钱欠账明天再给商家也好,还是明天在花也好,就十块哈,一分也没有,就十块.do while就像是先花了,while就像是给再花哈哈哈哈, break: 流程控制语句的php中才有我替代语句: php $i=0; if ($i==0): # code... echo "string"; endif; ?> ?

    36110

    【Swoole系列3.3】单进程管理Process

    在这段测试代码里面,让两个子进程工作的时候休息几秒。当运行这段代码的时候,如果你用 ps 去查看进程的话,一般只能看到两个进程,并且它们的父进程 ID 都是 1 。...其实,我们当前的这个执行起来的进程已经结束了,剩下两个在 sleep() 阻塞中的进程由于主进程的退出已经交由系统接管上升成为两个主进程了。但不管怎么说,起码多个进程我们是启动起来了。...PHP_EOL; //while(1) sleep(100); 即使我们去掉下面的挂起循环,最后的内容也会在两个子进程都结束执行之后才会输出出来。...守护进程 Swoole\Process::daemon(); 守护进程的概念也不用我多说了吧,最明显的就是我们的进程如果不是守护进程,那么在命令行运行起来的时候界面会一直保持在程序运行的状态中。...而开启了守护进程之后,进程就转移到后台运行了,就像 nohup 的作用一样。

    75120

    关于php对象池

    生命周期 对象池需要从php的生命周期说起,php的应用大部分都是web网站,而大部分web网站使用的都是cgi模式进行运行的,导致php生命周期跟随着请求结束而结束,从而没有对象池的概念 cgi模式的一次请求可以分为以下几步...    //无限循环下去,不断的获取用户的请求 } 在这份代码中,可以看出: 1:我们在程序一开始,自己实现了一个web服务器 2:先new 了user对象 3:while 1死循环,只要获取到了用户请求...原因就在于我们使用php-cli模式,用php自己实现了web服务器的部分功能,让php接管了web服务器,这样使得用户请求的生命周期,限制在了while(1)里面,而用户请求结束之后,并不会销毁while...答案是对的 那为什么不直接设置10000个,想多少人用就多少人用? 理论上是这样的,但是对象池的意义,就是限制并发的大小,防止服务器负载太高而进行宕机。...(例如java的多线程同时处理),而php中大部分情况是没有的,目前只有在swoole协程中使用较多,或者在php异步网络服务器中使用

    95120

    if三种实现方式(if if else if else if else switch case for while)

    是如果不是我就是你,没用第三种可能了为什么这么说? 因为else哪里没用判断语句啊,兄dei php $gg=666; if($gg<999){ # code......> 看见了把,我做了四个小时,为什么有0,因为开始第一次的时候,为什么最后是10结束啊,因为到第九次开始的时候到(10结束)就结束了啊,慢慢理解会懂的,个人理解:以条件那里的最后一个也就是...> 个人理解;死循环,为什么这么说,因为不懂,懂的兄弟可以告诉我,我洗耳恭听,哈哈哈 的,为什么有三个零,因为嵌套for里面的 i的,为什么有三个零,因为嵌套for里面的j ?...while: ? php $i=0; while($i<10) { echo($i); $i++; } ?> 这种垃圾我就不说了拜拜,原力计划我来了,哈哈哈!!!

    93720

    linux shell函数定义和调用

    其实参数传递方式为:fname;(不需要传递参数)或fname agr1 arg2(需要传递两个参数); 二、自定义函数的例子 不知道大家的情况如何,反正一开始我就觉得很别扭,因为在C语言中,例如我定义一个函数...int cmp(int a, int b),那么我就会在函数中使用到函数头中声明的变量a和b,而在Shell中却没有定义参数,那我的函数又需要用到这两个参数,怎么办好呢?...:是显示最后命令的退出状态,0表示没有错误,其他表示有错误; 特别注意,传递参数时,(这个例子中)一定要写成LoopPrint $n;而不能写成LoopPrint n。为什么?...这点与在静态语言中的函数参数传递是很不同的,因为在Shell中变量的使用并不需要先定义,所以要使用变量,让Shell知道它是一个变量,并要传递它的值时,就是用$n,而不能直接用n,否则只把n当作一个字符来处理...三、作用域问题 函数的作用域与C/C++语言中的作用约束是一样的,函数的定义一定要出现在函数的调用语句之前,但是有一点跟C/C++中不一样的就是变量的作用域问题,经过本人的试验,在注释1的语句改为while

    2.1K70

    关于php对象池

    生命周期 对象池需要从php的生命周期说起,php的应用大部分都是web网站,而大部分web网站使用的都是cgi模式进行运行的,导致php生命周期跟随着请求结束而结束,从而没有对象池的概念 cgi模式的一次请求可以分为以下几步...原因就在于我们使用php-cli模式,用php自己实现了web服务器的部分功能,让php接管了web服务器,这样使得用户请求的生命周期,限制在了while(1)里面,而用户请求结束之后,并不会销毁while...这个需要从2方面进行讲解 php实例化对象步骤: 如果讲php实例化的底层的话,大家可能听不懂,我也不懂底层,所以本人用通俗的方法讲解下php实例化对象需要做的事情(步骤前后顺序可能有错) 实例化对象...答案是对的 那为什么不直接设置10000个,想多少人用就多少人用? 理论上是这样的,但是对象池的意义,就是限制并发的大小,防止服务器负载太高而进行宕机。...(例如java的多线程同时处理),而php中大部分情况是没有的,目前只有在swoole协程中使用较多,或者在php异步网络服务器中使用

    84420

    计算机基础,Python基础--变量以及简单的循环

    固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。...解释型:当程序执行时,一行一行的解释。    优点:开发效率高,可以跨平台;   缺点:运行速度相对较慢。   主要代表是Python、PHP等。...  3.input括号里面的变量类型都是字符串。...九、基础数据类型初始 数字:int    取值范围:  在32位机器上,整数的位数是32位的,取值范围是-2**31~2**31-1;在64位机器上,整数的位数是64位的,取值范围是-2**63~2**...或者是  “”“      ”“”   例如诗歌的形式  msg = ''' 今天我想写首小诗, 歌颂我的同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。

    87070

    php提前响应请求继续执行代码(伪异步)

    在很多业务需求中,我们都可能需要先让php给浏览器输出,然后在后台慢慢处理其他不用输出耗时的业务. 那么,php该怎么实现这个功能呢?...,停止了 //用户后面发现,自己已经有了这个订单数据,却没有订单详情(执行一半没来得及插入) 这个时候,ignore_user_abort就有用了,当忽略客户机断开后,php会一直执行,直到异常终止或已完成操作...30秒时,会直接终止该php进程,可使用set_time_limit(0),设置为用不超时,这样的话,客户端就算断开,就算超过30秒,php进程也会一直执行下去,直到执行完成 实时输出 在我之前的一篇讲...)"; ob_flush();//刷新PHP自身缓冲区 flush();//刷新(特指apache)web服务器的缓冲区,输出数据 //这里还在巴拉巴拉处理事情\ $i=0; while(1){ //注意...echo "完成请求,3秒自动关闭页面(一段js自动关闭页面)"; //这里还在巴拉巴拉处理事情\ $i=0; while($i<100){     //注意,死循环非常危险,会造成该web进程一直在处理

    3.8K11

    堆的介绍~

    HPEmpty(&hp)) { printf("%d",HPTop(&hp); } HPDestory(&hp); } 方法二 首先说明最后一个非叶子结点的坐标为什么是(n-1-1...就是logK(N-K) 关于为什么向上调整建立小堆,向下调整建立大堆?...向上调整与建立小堆(最小堆) 想象你有一堆球,这些球按照重量不同被分成了不同的层级, 最轻的球在最上面,最重的球在最下面(但实际上在堆中,我们是用数组来表示的,但这不影响我们的理解)。...向下调整与建立大堆(最大堆) 现在,假设你有一堆球,但是这次是最重的球在最上面,最轻的球在最下面。这堆球是乱糟糟的,没有按照重量排好。...如果“当前球”比它上面的某个球还要重,那就把它们的位置交换一下,因为我们要让更重的球在上面。交换之后,“当前球”就上升了一个位置,变成了新的“上面”的球的一部分。

    7010

    php基础知识6-流程控制

    php是一门计算机编程语言,主要应用于开发web应用(网站建设等),本系列博客从php基础语法出发,介绍php基础知识。使读者深入浅出的学习到编程的乐趣。...本系列博客将讲解以下9个知识点,变量、常量、数据类型、运算符、数组、流程控制(顺序、选择、循环)、函数、文件处理、面向对象每篇文章都会在文末留下一个课后作业,答案获取请私聊我,大家可以在评论区积极讨论,...共同进步 [流程控制] 概念 流程其实就是控制决定代码的执行顺序,在实际编程中,莫过于顺序、选择、循环这三种场景,我们将这三种场景学会后,就可以读懂大多数的代码。...选择结构 选择结构有点像高中数学里学习的程序框图里面的分支结构,也就是说满足条件则这段代码,不满足条件则执行另一段代码。同时也可以嵌套其他的语句。php 里面主要是以if...else......* 微信公众号: 学长冷月 */ $i = 0; while ($i<10) { printf("我要买{$i}杯牛奶"); echo ""; $i++; }

    44800

    算法细节系列(4):二分查找总结

    key 对于不上升序列a,求最大的i,使得a[i] = key 对于不上升序列a,求最小的i,使得a[i] < key 对于不上升序列a,求最大的i,使得a[i] > key 综上所述,二分查找共有 2...while循环外部为什么还需要判断一次? 小于key的左半部分一定是被砍掉的,但while循环中被砍掉最后一个元素跳出循环后,它可能有两种情况,key 和比key大的值,所以必须进行一次判断。...你可以试试,用我的测试用例重新跑一下,你就发现问题了。...这里就是为了防止边界条件而进行的约束,假设lf在不断更新,导致的一个结果就是它将不断靠近rt而rt始终没有变化,此处如果遍历到数组末端那个元素,它会同样跳出循环,而让它跳出的是while循环中的if语句...同样的,因为while循环中的主要变动在于rt指针,把所有大于key的元素全部砍掉,而一旦所有元素符合小于等于key的条件时,由于向上取整的好处,lf指针也会慢慢向rt靠近,所以针对重复元素它选取的一定是最大下标

    87810

    老李在搞Workerman的日子里(五)

    而PHP实则为我们屏蔽了众多细节,确切说是一大坨细节,屏蔽细节的好处是用起来更加粗暴方便,坏处是细节上的控制粒度是不太到位的,不过千言万语还是那句话: 能用就行,难道TA不香吗?...在第二篇里我们搞定了子进程,在第三篇里我们搞定了进程回收,在第四篇里我们搞定了稳定的daemon进程,今天这个章节我想问个问题:一个daemon进程如何接受来自于外界的信息并作出相应。...前年我在写Advance-PHP的时候,PHP里真的只有pcntl_signal_dispatch();一直到最近(具体忘了什么时候了),终于有一个新的函数叫pcntl_async_signals()的函数冒了出来...你们自己复制粘贴走运行一下...我就不伺候到家了。 下面我说个概念,划红线考试要考、面试要问的。我们说信号从发生后到飞到进程之间这个时间差过程中,称之为信号是[ 未决 ]的。为什么叫做[ 未决 ]?...如果你不想因为检测阻塞信号而被阻塞,你可以考虑选择使用TA的兄弟版本pcntl_sigtimedwait()函数。

    1K11

    PHP+MYSQL购物列表篇

    test44 并设置字符集 mysqli_set_charset($link,'utf8'); 并$sql="select id,gname,price,pic from shop_goods"; 查询表里面的东西的编号...,东西的名称,东西的价格,东西的图片的啊 为什么啊,因为购物车列表里面不需要编号,不需要名称,不需要价格,不需要图片的吗是吧,数量的话,不是需要累加同一种类型不就可以了吗?...$rows[]=$row; } } 里面是关联数组,为什么要用关联数组,因为id,price这些是下标也是英文啊,英文就要用关联数组啊 "> 为什么用p标签,因为每一次都占用一行啊 php?act=addCart&id=php echo $row['id']; ?...>">加入购物车 这里是php里面是加入购物车的编号,第一个是addCart是在哪一个条件下应该怎么做哈

    87110

    Vue3 DOM Diff 核心算法解析

    最长上升子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。...一定是严格上升/递增的子序列 注意:子序列中元素的相对顺序必须保持在原始数组中的相对顺序 题解 动态规划 关于动态规划的思想,还不了解的同学们可以点击下方我的这篇专栏入个门。...,但是里面的值不正确,因为最后一步的替换破坏了子序列的性质。...核心算法其实是当新旧 children 都是多个子节点的时候才会触发。 下面这段代码就是 Vue3 的 DOM Diff 核心算法,我加上了在源码中的路径,方便你查找。...这也是为什么不着急说它的原因,因为如果你看懂了上面的 LeetCode 题解,你就已经掌握了 Vue3 的 Dom Diff 核心算法的思想啦。

    85720
    领券