Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

OOP Mimarisi Hakkında

merhaba arkadaşlar oop mimarisini inceliyordum herşey iyi güzel kavradım derken biyerde takıldım bu nedir??

mesela bi sınıf oluşturyor

class Loader{
private static $_instance = array();

public static function &loadClass($class){ return $class; }


}




buradaki instance yi tanımlarken kullanılan _ ifadesi
ve loadClass metodunu tanımlarken kullanılan & ne ifade ediyor şekil olsun diye kullanılmış olmaması lazım bunlar ne ifade ediyor??
  • Çağırırkende <?php $x = & Loader::loadClass("class adı"); ?> Bu tarz çağırılıyor bunlar nedemek anlayamadım .s
    sharq 11 yıl önce yazdı
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Alexander adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 yıl önce güncellenmiş
    29 cevap - 28 soru
    private olan değişkenlerin isimlerinin başında &#39;_&#39; kullanılır. Bu sadece kabul edilmiş kod yazma standardıdır. Yani sen istersen &#39;_&#39; karakterini kullanmadan da değişkene isim verebilirsin.

    &amp;loadClass fonksiyonun başındaki &amp; karakteri ise fonksiyonun dönderdiği değişkenin referansını döndermesini söyler. Eğer &amp; bu karakter fonksiyonun başında olmasaydı return edilen $class değişkenin hafıza da yeni bir kopyası oluşturulacaktı. &amp; karakteri sayesinde hafıza da $class değişkenin kopyası oluşturulmadı ve referansı return edildi. Böylece hafıza kullanımından tasarruf edilmiş oldu.

    Detaylı olarak http://www.php.net/manual/en/language.references.return.php adresinden inceleyebilirsin.
    Bu sayfada güzel bir örnek var.
    <?php
    
        function &func(){
            static $static = 0;
            $static++;
            return $static;
        }
    
        $var1 =& func();
        echo "var1:", $var1; // 1
        func();
        func();
        echo "var1:", $var1; // 3
        $var2 = func(); // assignment without the &
        echo "var2:", $var2; // 4
        func();
        func();
        echo "var1:", $var1; // 6
        echo "var2:", $var2; // still 4
    
    ?>
    
    • sharq adlı üyenin fotoğrafı sharq
      cevabın için teşekkürler yani sadece ram de saklayıp ordanmı çağırıyor
      11 yıl önce yazılmış

Cevaplar

  • xuma adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 yıl önce güncellenmiş
    171 cevap - 1 soru
    Aslında durum classlarla alakalı değil.Bilgim dahilinde ; alttire kullanmanın özel bir nedeni yok tanımlama yaparken alttire kullanabilirsin.

    Fonksiyonlarda geçerlimidir bilmiyorum ancak &amp; işareti biraz karışık olmakla birlikte &amp; normalde yoktur ve hafızada yer kaplamaz bir değişkeni &amp; olarak çağırısan referansı neyse onu çağırır. :) Neyse örnekle verelim.
    Normalde şöyle bir betiğimiz var diyelim ;
    <?php
    	$x = "GENEL DEGISKEN DEGERI";
    	$y = $x;
    	echo $x."<br/>";
    	echo $y."<br/>";
    	$x = "YENI DEGER";
    	echo $y."<br/>";
    ?>
    

    doğal olarak çıktı
    GENEL DEGISKEN DEGERI
    GENEL DEGISKEN DEGERI
    GENEL DEGISKEN DEGERI
    

    olacaktır.Eğer biz;
    <?php
    	$x = "GENEL DEGISKEN DEGERI";
    	$y = &$x;
    	echo $x."<br/>";
    	echo $y."<br/>";
    	$x = "YENI DEGER";
    	echo $y."<br/>";
    ?>
    

    şeklinde kullanırsak çıktımız ;
    GENEL DEGISKEN DEGERI
    GENEL DEGISKEN DEGERI
    YENI DEGER
    

    şeklinde olur.Yani $y değişkeni $x&#39;i referans alır.