99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋(píng)果6袋
6
麥子學(xué)院

PHP each() 函數(shù)用法簡(jiǎn)介

發(fā)布時(shí)間:2017-02-07 22:22  回復(fù):0  查看:2637   最后回復(fù):2017-02-07 22:22  

本文和大家分享的主要是phpeach() 函數(shù)相關(guān)用法,一起來(lái)看看吧,希望對(duì)大家學(xué)習(xí)php有所幫助。

  each 函數(shù)簡(jiǎn)介

  (PHP 4, PHP 5, PHP 7)

  each — 返回?cái)?shù)組中當(dāng)前的鍵/值對(duì)并將數(shù)組指針向前移動(dòng)一步

  array each ( array &$array )

  返回 array 數(shù)組中當(dāng)前指針位置的鍵/值對(duì)并向前移動(dòng)數(shù)組指針。鍵值對(duì)被返回為四個(gè)單元的數(shù)組,鍵名為0,1,key和 value。單元 和 key 包含有數(shù)組單元的鍵名,和 value 包含有數(shù)據(jù)。

  如果內(nèi)部指針越過(guò)了數(shù)組的末端,則 each() 返回 FALSE

  通常在執(zhí)行 each() 之后,數(shù)組指針將停留在數(shù)組中的下一個(gè)單元或者當(dāng)碰到數(shù)組結(jié)尾時(shí)停留在最后一個(gè)單元。如果要再用 each 遍歷數(shù)組,必須使用 reset()。

  驗(yàn)證each 函數(shù)對(duì)數(shù)組指針的操作影響

  測(cè)試環(huán)境:

  OS :CentOS 6.5

  PHP: php 5.6

  運(yùn)行模式: cli

  DEMO 1: 數(shù)組內(nèi)部指針越過(guò)末端再次執(zhí)行each返回false

  1 <?php

  2 /**

  3 * @description: php each 循環(huán)

  4 *

  5 * @author : snow wolf<XUEYUTIANLANG@163.COM>

  6 *

  7 * @date : 2016-07-19

  8 */

  9

  10 /* each 作用是返回當(dāng)前數(shù)組的鍵值對(duì),并將當(dāng)前數(shù)組的指針向下移動(dòng)一步,若內(nèi)部指針越過(guò)了數(shù)組的末端返回false */

  11

  12 $arr = range(1,2);

  13

  14 while($list = each($arr))

  15 {

  16 var_dump($list);

  17 sleep(1);

  18 }

  19

  20 //因數(shù)組指針到達(dá)末端,返回false 所以未執(zhí)行 第二次循環(huán)

  21 while($list = each($arr))

  22 {

  23 var_dump($list);

  24 sleep(1);

  25 }

  26

  27

  28 echo '指針是否越過(guò)數(shù)組末端: ';

  29 var_dump(each($arr));

  30 2

  執(zhí)行結(jié)果:

  /data/phpLoop/each.php:16:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  /data/phpLoop/each.php:16:array(4) {

  [1] =>

  int(2)

  'value' =>

  int(2)

  [0] =>

  int(1)

  'key' =>

  int(1)

  }

  指針是否越過(guò)數(shù)組末端: /data/phpLoop/each.php:29:bool(false)

  DEMO驗(yàn)證,數(shù)組賦值是否會(huì)重置原來(lái)的數(shù)組指針

  $tmpArr = $arr;

  33

  34 while($list = each($arr))

  35 {

  36 var_dump($list);

  37 sleep(1);

  38 }

  39 echo '數(shù)組賦值測(cè)試指針是否越過(guò)數(shù)組末端: ';

  40 var_dump(each($arr));

  執(zhí)行結(jié)果:

  /data/phpLoop/each.php:35:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  /data/phpLoop/each.php:35:array(4) {

  [1] =>

  int(2)

  'value' =>

  int(2)

  [0] =>

  int(1)

  'key' =>

  int(1)

  }

  \n 數(shù)組賦值測(cè)試指針是否越過(guò)數(shù)組末端:

  /data/phpLoop/each.php:42:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  DEMO3: 全局化 arr 數(shù)組,無(wú)形參,無(wú)傳值,測(cè)試是否重置指針

  /*全局化 arr 數(shù)組,無(wú)形參,無(wú)傳值,測(cè)試是否重置指針*/

  48 function doEach()

  49 {

  50 global $arr;

  51 while($list = each($arr))

  52 {

  53 var_dump($list);

  54 sleep(1);

  55 }

  56

  57 }

  58

  59 doEach();

  60 doEach();

  61

  62 echo '\n 函數(shù)調(diào)用測(cè)試指針是否越過(guò)數(shù)組末端: ';

  63 var_dump(each($arr));

  執(zhí)行結(jié)果:

  /data/phpLoop/each.php:53:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  /data/phpLoop/each.php:53:array(4) {

  [1] =>

  int(2)

  'value' =>

  int(2)

  [0] =>

  int(1)

  'key' =>

  int(1)

  }

  \n 函數(shù)調(diào)用測(cè)試指針是否越過(guò)數(shù)組末端: /data/phpLoop/each.php:63:bool(false)

  DEMO4: 直接檢測(cè) 函數(shù)方式,是否越過(guò)數(shù)組末端

  /*直接檢測(cè) 函數(shù)方式,是否越過(guò)數(shù)組末端 */

  66

  67 function funEach($arr)

  68 {

  69 while($list = each($arr))

  70 {

  71 var_dump($list);

  72 sleep(1);

  73 }

  74 }

  75

  76 funEach($arr);

  77 funEach($arr);

  78

  79 echo '\n 函數(shù)直接調(diào)用測(cè)試指針是否越過(guò)數(shù)組末端: ';

  80 var_dump(each($arr));

  執(zhí)行結(jié)果:

  /data/phpLoop/each.php:71:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  /data/phpLoop/each.php:71:array(4) {

  [1] =>

  int(2)

  'value' =>

  int(2)

  [0] =>

  int(1)

  'key' =>

  int(1)

  }

  /data/phpLoop/each.php:71:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  /data/phpLoop/each.php:71:array(4) {

  [1] =>

  int(2)

  'value' =>

  int(2)

  [0] =>

  int(1)

  'key' =>

  int(1)

  }

  \n 函數(shù)直接調(diào)用測(cè)試指針是否越過(guò)數(shù)組末端: /data/phpLoop/each.php:80:array(4) {

  [1] =>

  int(1)

  'value' =>

  int(1)

  [0] =>

  int(0)

  'key' =>

  int(0)

  }

  個(gè)人小結(jié)

  在執(zhí)行 each() 之后,數(shù)組指針將停留在數(shù)組中的下一個(gè)單元或者當(dāng)碰到數(shù)組結(jié)尾時(shí)停留在最后一個(gè)單元,但如果此時(shí)對(duì)當(dāng)前數(shù)組賦值則會(huì)重置原來(lái)的數(shù)組指針,因此若在循環(huán)中需小心使用each 勿賦值,否則將會(huì)導(dǎo)致無(wú)限循環(huán)。

 

來(lái)源:Linux公社

您還未登錄,請(qǐng)先登錄

熱門(mén)帖子

最新帖子

?