php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > PHP基础入门 >

对于foreach循环的一点小认识

时间:2018-09-22 12:28来源:未知 作者:admin 点击:
在平时程序编写过程中,为了减少变量使用和代码简洁的目的,在foreach结束后不会再使用到源数组的前提下,可以考虑foreach判定体内提取出的数组单项命名为与源数组同名首先来看一

在平时程序编写过程中,为了减少变量使用和代码简洁的目的,在foreach结束后不会再使用到源数组的前提下,可以考虑foreach判定体内提取出的数组单项命名为与源数组同名首先来看一段代码:

  $arr = array("a","b","c","d");

  foreach($arr as $val) {

  echo $val.' ';

  $arr = array("a1","b1","c1","d1");

  foreach($arr as $val) {

  echo $val.' ';

  }

  }

  这段代码会输出什么呢?

  或者来个简单的:

  $arr = array("a","b","c","d");

  foreach($arr as $val) {

  echo $val.' ';

  $arr = array();

  }

  第一段代码会输出”a a1 b1 c1 d1 b a1 b1 c1 d1 c a1 b1 c1 d1 d a1 b1 c1 d1 “,第二段则会输出”a b c d”。

  为什么会这样呢?当时和同事第一次看这段代码时 都以为会输出”a a1 b1 c1 d1 a1 a1 b1 c1 d1…”,但结果确不对,其实想想也是,如果是我们想的那种循环的话,估计这也算是死循环了吧。。

  查了相关资料后才明白,foreach循环的数组其实是源数组的一个拷贝,也就是说foreach在第一次循环开始时便把源数组拷贝了一份,之后在循环体中对源数组进行修改时并不会对foreach产生改变。

  由此想到,在平时程序编写过程中,为了减少变量使用和代码简洁的目的,在foreach结束后不会再使用到源数组的前提下,可以考虑foreach判定体内提取出的数组单项命名为与源数组同名。

  也就是像这样:

  $array = array(1,2,3,4,5,6,7);

  foreach ($array as $array){

  echo $array;

  }

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐
  • PHP MySQL 预处理语句
  • 预处理语句对于防止 MySQL 注入是非常有用的。 预处理语句及绑定参数 预处理语

  • For循环
  • 循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。 for 循

  • While循环
  • 循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。 PHP 循

  • PHP循环语句用法之while循环
  • 计算机机非常擅长的一件事就是自动地、重复地执行任务。如果某些任务需要以

  • 一位PHP初学者的入门经历
  • 对于PHP程序设计语言来说。每个人的学习方式不同,写这篇文章的目的是分享一