Ne yapar &

3 Cevap

PHP hızlı bir acemi bir soru.

Ne yapar & in & $ data yapmak ve $ veri ile farklar nelerdir?

function prepareMenu(&$data) {
 $this->db->where('parentid',0)
...
...

3 Cevap

Eğer aşağıdaki programı koştu eğer bu sonucu ne bir örnek, olacaktır:

$data = 3;
print($data);
prepareMenu($data);
print($data);

function prepareMenu(&$data) 
{
  $data = 7;
  print($data);
}

Sen çıkışını alabilirsiniz:

3
7
7

Eğer değere göre iletilmiş ziyade referans oysa:

$data = 3;
print($data);
prepareMenu($data);
print($data);

function prepareMenu($data) 
{
  $data = 7;
  print($data);
}

Sen çıkışını alabilirsiniz:

3
7
3

İkinci örnekte olduğu gibi, $ veri değeri copied prepareMenu kullanım için olacak, her zaman orijinal $ verilerle çalışıyoruz ilk örnekte karşı

Not: yıllarda PHP yazmadım, yani bu aslında derlemek için beklemeyin, bir örnek olarak pinti sadece =)

&$data referans olarak geçirilir, $data değeri tarafından geçirilir

Referans ile Geçti - Anlaşıldı, nesnesine bir başvuru değil geçiyoruz. Siz arayanı aynı nesneyi kullanıyor.

değeri geçti - Eğer nesneyi kopyalamak ve işlevine geçmek. Siz arayanı nesneden farklı nesnenin bir kopyası ile çalışıyoruz.

Basit anlamda ben toplayabilecek:

& - Pass By Reference

Bir değişkeni geçirerek size değişkeni veri depolamak için kullandığı bellek adresi bir kopyasını geçiyoruz demektir. PHP bu hak "References Explained" açıklayan adamıştır kendi web sitesinde bütün bir bölüm vardır.

This simply means that you can modify the original variable from a secondary source.

Example

function testFunction(&$param) {
    $param = 'test2';
}

$var = 'test';
echo $var; // outputs 'test'
testFunction($var);
echo $var; // outputs 'test2'