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)
...
...
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:
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.
function testFunction(&$param) {
$param = 'test2';
}
$var = 'test';
echo $var; // outputs 'test'
testFunction($var);
echo $var; // outputs 'test2'