Új hozzászólás Aktív témák
-
fordfairlane
veterán
válasz
H.O.D. #13126 üzenetére
Értelmes fellelhető forrás hiányában arra gondoltam, ez megtörténik az osztály bármely metódusának/elemének használatakor.
Tudomásom szerint erre nincs beépített automatizmus, osztály használatakor nem történik ilyesfajta inicializálás. A konstruktor példányosításkor hívódik meg.
A PHP osztálybetöltő mechanizmusa viszont testreszabható, így megoldható egyfajta osztálybetöltő és inicializáló kódrész. Mondjuk ha __init-nek hívod, akkor valami ilyesmivel pl:
<?php
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
if(is_callable($class, '__init')) {
$class->__init();
}
});
?> -
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
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Windows 10
- Formula-1 humoros
- Villanyszerelés
- Felrobbant a Pixel Fold Zack Nelson kezében
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- E-roller topik
- Drón topik
- További aktív témák...
- Apple Mac mini 14.3 M2 8GB RAM 256GB SSD 1év garancia
- Készpénzes számítógép PC félkonfig alkatrész hardver felvásárlás személyesen / postával korrekt áron
- Samsung Galaxy S25 Blueblack 120 Hz AMOLED, AI-kamera, erős teljesítmény 12/128 GB Új
- BESZÁMÍTÁS! LG UltraGear 27GR93U-B 27 4K 144Hz IPS monitor garanciával hibátlan működéssel
- HIBÁTLAN iPhone 14 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3238
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest