国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

解讀PHP數組讀取的操作

2024-05-04 21:52:20
字體:
來源:轉載
供稿:網友

PHP基本上就是一種數組語言。

時常要進行大量的數組循環操作,主要有兩種方式,一種是foreach,另一種是while,到底哪種好哪種壞一直有爭論,雖然我很早就意識到了這個問題,但是一直沒有細究,懵懂的感覺一直持續到現在,為了以后能節省點CPU時間,下面總結一下:

在循環里進行的是數組“讀”操作,則foreach比while快:
無格式查看復制到剪貼板打印代碼?

  foreach ($array as $value) {
  echo $value;
  }
  while (list($key) = each($array)) {
  echo $array[$key];
  }
  foreach ($array as $value) {
  echo $value;
  }
  while (list($key) = each($array)) {
  echo $array[$key];
  }

在循環里進行的是數組“寫”操作,則while比foreach快:
無格式查看復制到剪貼板打印代碼?

  foreach ($array as $key => $value) {
  echo $array[$key] = $value . '...';
  }
  while (list($key) = each($array)) {
  $array[$key] = $array[$key] . '...';
  }
  foreach ($array as $key => $value) {
  echo $array[$key] = $value . '...';
  }
  while (list($key) = each($array)) {
  $array[$key] = $array[$key] . '...';
  }

總結:
通常認為,foreach涉及到值復制,一定會比while慢,
但實際上,如果僅僅是在循環里進行數組的讀操作,那么foreach是很快的,
這是因為PHP采用的復制機制是“引用復制,寫時拷貝”,這樣看來, foreach的高效讀操作就不難理解了。
另外,既然foreach不適合處理數組寫操作,那么我們可以得出一個結論,
多數情況下,類似foreach ($array as $key => $value)形式的代碼都應該被替換成while (list($key) = each($array))。
這些技巧產生的速度差異在小項目里可能并不明顯,但是在類似框架這樣的大項目中,一次請求動輒便會涉及到幾百幾千幾萬次數組循環操作,差異就會明顯放大。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阆中市| 龙岩市| 龙南县| 八宿县| 家居| 河南省| 乌鲁木齐市| 婺源县| 定南县| 洪洞县| 汤原县| 北安市| 贡嘎县| 比如县| 阿拉尔市| 新疆| 达尔| 错那县| 伊春市| 绥芬河市| 大丰市| 三都| 绿春县| 育儿| 佛冈县| 灯塔市| 遂川县| 永顺县| 阿坝县| 修文县| 盈江县| 吉隆县| 阜阳市| 芮城县| 高清| 兰考县| 正宁县| 穆棱市| 辽宁省| 雷州市| 武山县|