php diziler referans değeri geçirilir?
Bir dizi bir yöntem için bağımsız değişken olarak geçirilen veya başvuru tarafından geçirilen bu işlev?
Bunlar ne yapıyor:
$a = array(1,2,3);
$b = $a
$A $b bir referans var mı?
CEVAP
Sorunuzun ikinci bölümü için, ** 12, hangi devletler bakın(alıntı):
Dizi atama her zaman değer içerir kopyalama. Başvuru operatör için kullanın referans olarak bir dizi kopyalayın.
Ve verilen örnek :
<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>
İlk bölüm için, emin olmak için en iyi yolu deneyin ;-)
Kod : bu örnek göz önünde bulundurun
function my_func($a) {
$a[] = 30;
}
$arr = array(10, 20);
my_func($arr);
var_dump($arr);
Bu çıktıyı verecektir :
array
0 => int 10
1 => int 20
Hangi işlevi "" bir parametre olarak geçirilen dizi : bir kopyası olarak geçti, ve bir referans. dış değiştirdi gösterir
Eğer başvuru tarafından geçirilen istiyorsanız, işlevini değiştirmek için, bu şekilde olacak :
function my_func(& $a) {
$a[] = 30;
}
Ve çıkış olacak :
array
0 => int 10
1 => int 20
2 => int 30
Bu kez, dizinin geçmiş olarak "başvuru".
El ile References Explained bölümünü okumak için tereddüt etmeyin : bazı soruların cevap vermek gerekir ;-)
Diziler ve listeler c referans tarafın...
Ruby: bir şeyle, bir karma her bir değ...
C iyi değeri by-pass ya da sabit refer...
Nasıl PHP belirli bir anahtar değeri i...
Referans: tüm temel yolu PHP diziler v...