SORU
8 Ocak 2010, Cuma


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
8 Ocak 2010, Cuma


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 ;-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010
  • Top10Series

    Top10Series

    26 Kasım 2008