foreach 引用傳值

2022-06-20 07:54:16 字數 1449 閱讀 4803

foreach  引用傳值&

foreach($arr

as$key => &$vo

)

//這樣我們就完成了對陣列元素新增name屬性和age屬性了,

在上面的寫法中,如果我們不填寫&符號,還可以使用下面的辦法來新增屬性,那就是

$arr[$key]['name'] = '張三';

$arr[$key]['age'] = '20';

舉例子:將data1中的1,4,分別插入data2的兩個陣列中去

$data1 = array(1,4);

$data2 = array(

array('北京'),

array('黑龍江')

);最終效果:

array ( 

[0] => array (

[0] => 北京

[number] => 1

) [1] => array (

[0] => 黑龍江

[number] => 4

) )

使用上面的方法;

foreach ($data2

as$k=>$v

)

這裡沒有用&引用符,所以沒效果,最終列印的結果是:列印data2沒變化,只有列印$v才顯示下面的結果

print_r($v);die; // 上面的不加&連線符,相當於把迴圈的結果,最終付給了$v的這個陣列變數了,跟data2沒有關係;他們之間沒有連線的橋梁,各式各的,沒有關聯。

array

( [0] =>黑龍江

[number] => 4)

如果要有效果,加上&符號,意思就是把遍歷出來的data2裡面的兩個陣列,每乙個都加上number這個元素;相當於乙個把data2裡的值,跟number連線起來的作用,相當於一座橋梁,

foreach ($data2

as$k=>&$v

)

或者不用引用符,直接用  data[$k]['num'] 

foreach ($data2 as $k => $v)

結果:

array

( [0] => array

([0] => 北京

[num] => 1

)[1] => array

([0] => 黑龍江

[num] => 4

))

給乙個陣列新增乙個元素的其中之一的方法就是下面

$arr = array('北京');

$arr['aa'] = 55;

結果:給arr新增乙個aa鍵名,值為55

array

( [0] => 北京

[aa] => 55

)

foreach裡的按引用傳值問題

1.foreach arr as k v 這樣迴圈時候最後乙個結果前邊會有 出現輸出不了的情況,這時候只需要加乙個unset v 加在迴圈裡和外均可。2.監聽input框的輸入變化 aaa bind input propertychange function 3.js陣列只可定義索引陣列,實際上無 ...

傳值 傳值引用

首先對傳值和傳引用要有個基本的概念 傳值 傳遞的是值的副本。方法中對副本的修改,不會影響到呼叫方。傳引用 傳遞的是引用的副本,共用乙個記憶體,會影響到呼叫方。此時,形參和實參指向同乙個記憶體位址。對引用副本本身 物件位址 的修改,如設定為null,重新指向其他物件,不會影響到呼叫方。直接上 更好的理...

傳值 傳引用 傳指標

收藏 相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資...