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

首頁 > 開發 > PHP > 正文

一道簡單的PHP筆試題(進階必備)

2024-05-04 23:06:35
字體:
來源:轉載
供稿:網友

下文是一道簡單的PHP筆試題(進階必備)了,如果你準備去面試的話不防進入來參考這道筆試題吧。

一個前輩發了一道PHP筆試給我,題目大致如下

  1. $arr = array('1','2','3'); 
  2.  
  3. foreach($arr as $key=>&$val){} 
  4.  
  5. foreach($arr as $key=>$val){} 
  6.  
  7. var_dump($arr); 

問答案是什么?

看完我就懵了?根本不知道問題的考點在那里,看完兩個foreach的區別在一個是取了地址,一個沒有取地址,這樣會影響結果嗎?

結果輸出的結果居然是如下:

  1. array
  2.   0 => string '1' (length=1) 
  3.   1 => string '2' (length=1) 
  4.   2 => &string '2' (length=1) 

表示打印出來的數據為什么會這樣?“3”去哪兒了?造成這樣的原因在于:&取地址符合.

用這種方式來說明foreach對數組的讀取,比較直觀,然后循環就是指針的移動讀取,而且由于是&取值,則直接讀的是地址而是不簡單的賦值,所以當第一個循環結束后,$val跟$arr[2]指的是同一個地址,所以$val值如果改變了,$arr['2']值也跟著改變了.

如果,你運行一下如下代碼:

  1. $arr = array('1','2','3');
  2. foreach($arr as $key=>&$val){} 
  3. //開源軟件:Vevb.com 
  4. foreach($arr as $key=>$val){ 
  5.  var_dump($arr); 
  6. var_dump($arr); 

你就能看到變化的過程,和得到之前結果的原因.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石嘴山市| 宽城| 新竹县| 林西县| 淮阳县| 东至县| 吉隆县| 抚顺市| 广州市| 元江| 贵溪市| 安陆市| 桓台县| 信丰县| 新化县| 通化县| 怀安县| 昭平县| 兖州市| 黔西县| 宁阳县| 大方县| 湖州市| 皋兰县| 宾阳县| 南充市| 陆丰市| 长子县| 德格县| 灵丘县| 巴彦县| 毕节市| 兴安县| 福鼎市| 夏河县| 平乐县| 榕江县| 德昌县| 夏河县| 鄂伦春自治旗| 北辰区|