Új hozzászólás Aktív témák

  • cucka

    addikt

    válasz H.O.D. #13126 üzenetére

    Statikus adattagot így tudsz inicializálni:
    class Test{
    static $data = 5;
    }

    Nyoévám me, példányosítással, de akkor hogyan?
    A statikus adattagok/metódusok az osztályhoz köthetők, nem az objektumpéldányhoz. Tehát pont az a lényeg, hogy függetlenek attól, hogy létrejön-e akár 1 példány abból az osztályból vagy sem.

    arra gondoltam, ez megtörténik az osztály bármely metódusának/elemének használatakor.
    A statikus adattag akkor jön létre, amikor az osztály kódját értelmezi a php.
    Ezt próbáld meg megérteni: a statikus adattag az lényegében egy globális változó. A trükk, hogy becsomagolod egy osztályba, az osztály nevén keresztül tudod elérni, így nem szennyezed a globális névteret. Egy osztály, ami csak statikus dolgokat tartalmaz, az lényegében nem egy osztály, hanem egy névtér. Akkor használunk ilyet, ha
    - a nyelv nem támogatja a névtereket (pl. régebbi php verziók)
    - a nyelvben nincsenek globális változók (pl. java)

    __autoload()-dal töltöm be, ha abba teszek egy xy::__construct()-ot, az lehet megoldás?
    Nem. Az autoload arra van, hogy megtaláld a hivatkozott osztály file-ját és include-old. A konstruktor meg az a speciális metódus, amely egy osztály példányosításánál fut le. A kettőnek semmi köze egymáshoz.

Új hozzászólás Aktív témák