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
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 *
ok, dík
AM_
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: