| Autor | Zpráva | ||
|---|---|---|---|
| Kozak Profil * |
Zdravím,
mohl bych se jen zeptat.. když například mám třídu ...s funkcema ..mužu to použít takto i takto ? :) 1) $trida = new MojeTrida(); $mojefunkce = $trida->MojeFunkceVeTride(); (( vypise "HAHAHA" )) 2) MojeTrida::MojeFunkceVeTride(); je nějaký problém jestli to bude tak nebo tak ? Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
). |
||
| Majkl578 Profil |
#2 · Zasláno: 22. 3. 2010, 13:11:09
PHP to dovolí, ale logicky je to špatně. Při statickém volání nepůjde použít proměnná instance ($this) v objektu. Navíc PHP při volání nestatické metody staticky emituje E_STRICT.
Je vhodné zvolit si jednu z možných variant a nepoužívat obě zárověň. Statické metody mají ve své deklaraci klíčové slovo static. |
||
| Kozak Profil * |
#3 · Zasláno: 22. 3. 2010, 13:15:17
ok, dík
|
||
| AM_ Profil |
#4 · Zasláno: 23. 3. 2010, 07:26:21
Jen dodám, že v případě, kdy metoda nikde nepoužívá kontext své instanec ($this), je obvykle vhodné volit ji jako statickou. Vytvářet instanci jen proto, abych mohl zavolat metodu, je vyhazování času a paměti do kanálu.
|
||
|
Časová prodleva: 16 let
|
|||
0
).