欢迎光临
我们一直在努力

PHP中while语句的一点理解用法

 while是php里面用的最多的一个函数,但是观察了很久,但是很多人用习惯了,并不知道里面是怎么回事,只是习惯性打上去;

  先测一下一秒中,while可以运行多少次循环;

  $time1 = microtime(true);

  $i =0;

  while(1)

  {

  $i++;

  if(microtime(true)- $time1 >1)

  {

  echo $i;

  exit();

  }

  }

  ?>

  运行结果

  389443;

  while是当whle括号里面的条件成立的话,就执行,这是绝对正确的

  所以while(1)就是无限循环;

  实例1:

  $sql = "select * from table";

  $result = mysql_query($sql);

  while($arr = mysql_fetch_assoc($result))

  {

  }

  这一个理解是当while括号里面$arr = mysql_fetch_assoc($result);成立的情况下,就会一直往下运行;

  $arr = mysql_fetch_assoc($result);

  当执行这个查询的话,第一次,指针就对准第一行,如果第二次查询的时候,他就会对准第二行,一直找到没有结果,返回false就不会执行了

  错误写法:

  $sql = "select * from table";

  $result = mysql_query($sql);

  $arr = mysql_fetch_assoc($result));

  while($arr = mysql_fetch_assoc($result))

  {

  }

  这样执行过来的结果就会少了一行;

  实例2:两分算法

  while($ip1num>$ipNum || $ip2num<$ipNum)

  {

  }

  这是discuz里面取得ip地址对应的真实地址的function

  附件里面有这个function的文件包

  简单的拆成

  while($a>1 || $b <1)

  {

  }

  再拆

  while($a >1)

  {

  }

  while($b<1)

  {

  }

  如果$a 是先有值的情况下,

  如果$a =1;

  那样就执行不下去,条件不成立

  或者$a =2;

  这样就无限循环了;

  重点

  如果$a没有先附值

  刚开始我一直以为是错误,但是实际上他不会有错误,

  这是php不同的地方

  简单通过一个程序测试一下

  $i =0;

  while($a<1)

  {

  $i++;

  if(microtime(true)- $time1 >1)

  {

  echo $i;

  $a =1;

  }

  }

  ?>

  运行结果

  272487;

  while($a <1)

  他会一直执行,直到程序里面括号里面重新得到一个值$a =1;

  $a<1不成立,他才会停止运行;

  所以

  while($a>1 || $b <1)

  {

  }

  的理解是当括号内部执行到$a<=1同时$b>=1两个条件分成成立的情况下执行才中止执行

  这样就是双分算法了

  如果这两个都理解的话,基本上while就非常清楚了

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:枫叶博客 » PHP中while语句的一点理解用法

分享到: 生成海报
avatar

热门文章

  • 评论 13

    Captcha Code

    • QQ号
    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址
    1. #1
      avatar

      顶一顶了 博主万福

      三利达户外11年前 (2012-05-21)国内网友回复
    2. #2
      avatar

      博主博客很不错啊~第一次来,支持博主了!我的新站太原注册公司http://www.8834.info

      太原注册公司11年前 (2012-05-22)国内网友回复
    3. #3
      avatar

      博主你好,你的博客很不错哦!我是个网络新人,刚建了个人民币收藏博客www.9189.info,希望以后能多多交流!

      人民币收藏11年前 (2012-05-24)国内网友回复
    4. #4
      avatar

      博主博客很不错哦~我的小站痔疮怎么治疗www.80rcw.com欢迎回访!

      痔疮怎么治疗10年前 (2012-05-26)国内网友回复
    5. #5
      avatar

      伤不起的代码呜呜

      瘦腿3天快速方法10年前 (2012-05-28)国内网友回复
    6. #6
      avatar

      不错 6.1到了 节日快乐哦 哈哈 写的不错

      波西米亚长裙10年前 (2012-05-28)国内网友回复
    7. #7
      avatar

      来访了,记得回访哦。

      购物狂10年前 (2012-05-30)国内网友回复
    8. #8
      avatar

      给你的博客踩踩!

      绣花10年前 (2012-05-31)国内网友回复
    9. #9
      avatar

      明天就是六一儿童节了,博主要是给儿子买礼物可以到我的婴儿手推车www.uusbbs.com网站看看哦~呵呵,支持博主了!

      婴儿手推车10年前 (2012-05-31)国内网友回复
    10. #10
      avatar

      给博主踩踩,谢谢博主分享

      祛斑三步法10年前 (2012-06-01)国内网友回复
    11. #11
      avatar

      谢谢分享,写的不错

      上海做网站10年前 (2012-06-02)国内网友回复
    12. #12
      avatar

      博文不错,顶啦

      张海超10年前 (2012-10-05)未探索到的地区回复
    13. #13
      avatar

      很不错的东西啊!

      折弯机模具10年前 (2012-10-29)国内网友回复

    枫叶博客

    联系我们联系我们

    登录

    忘记密码 ?