Kada nešto deklarišeš kao 'static' za to svojstvo ili metodu ne postoji $this->something već 'self::something' ili 'static::something'
Late Static Binding
Bind == Vezati / Vezivanje.
Statično vezivanje svojstava u toku procesiranja/parsovanja.
Kada vršiš nasleđivanje/produžavanje klasa (extends) i u klasi koju si nasledio već imaš statična svojstva/metode, za ta statična svojstva ili statične metode koje se nalaze u nasleđenoj/prethodnoj klasi, koristiš static::funcName() i onda ne bi trebalo da dođe do neočekivanih rezultata, tipa da to i to svojstvo nije poprimilo drugu vrednost - a trebalo je.
E sad.. ako si tek krenuo da učiš PHP, a već se interesuješ za OOP,
reci mi da li znaš šta se ovde u donjem primeru dešava?
Code (php):
header('Content-type:text/plain; charset=utf-8');
ob_start();
foreach(unserialize(base64_decode(
implode("", array(
'YTo1OntpOjA7czo5OiJp',
'bnRlcmZhY2UiO2k6MT',
'tzOjU6ImNsYXNzIjtpOj',
'I7czo4OiJjb25zdG',
'FudCI7aTozO3M6O',
'DoicHJvcGVydHk',
'iO2k6NDtzOjY6Im',
'1ldGhvZCI7fQ=='
)
))) as $n=>$v)
echo "$n - $v \n";
$a=ob_get_clean();
exit('In most common PHP OOP practices,
the following @types are being used: '."\n\r$a");
Ako ne znaš ili ti nije jasno, moj ti je savet da STOPIRAŠ sa OOP i prvo savladaš "fundamentalije" php-a.
Na taj način, biće ti neizmerno lakše da pokapiraš sve povodom OOP-a i kreneš da to i koristiš u produkciji.
[Ovu poruku je menjao plus_minus dana 11.05.2014. u 15:44 GMT+1]
about:networking