Portál AbcLinuxu, 11. května 2025 18:31

Dotaz: PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody

30.4.2014 13:53 Jaryn
PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody
Přečteno: 352×
Odpovědět | Admin
Ahoj, jde zavolat nějaká default metoda, pokud požadovaná metoda neexistuje? Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Tarmaq avatar 30.4.2014 14:38 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody
Odpovědět | | Sbalit | Link | Blokovat | Admin
To zadani je dost takove neurcite, ale snad spravne chapu o co se pokousis..
$c = new Class;
$rc = new ReflectionClass($c);
if ($rc->hasMethod('foo')) {
  $c->foo();
} else {
  $c->default();
}
Jinak nebylo by od veci, popsat nejak lip o co se vlastne pokousis. Treba tohle vubec nepotrebujes resit a dalo by se resit jinym navrhem..
Don't panic!
30.4.2014 14:39 Sten
Rozbalit Rozbalit vše Re: PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody
Odpovědět | | Sbalit | Link | Blokovat | Admin
__call a __callStatic
30.4.2014 15:07 Sten
Rozbalit Rozbalit vše Re: PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody
Btw. doporučuji to používat jen u proxy (RPC, lazy loading ap.), protože to hodně znepřehledňuje kód.
FrostyX avatar 1.5.2014 12:02 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
Rozbalit Rozbalit vše Re: PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tarmaq a Sten zmínili možnosti, jak vyřešit to co chceš, ale možná to tak vůbec nepotřebuješ řešit. Možná kdybys rozvedl, k čemu to hodláš použít, ...

V některých případech by šlo definovat rozhraní a v něm seznam metod, které tě zajímají. Potom jen ověřovat, jestli daná třída implementuje rozhraní (=> implementuje ty metody). Nebo by se dala ta metoda prostě zavolat a případně odchytit výjimku, ...
FrostyX.cz | 1984 was not supposed to be an instruction manual.
9.5.2014 00:45 qross
Rozbalit Rozbalit vše Re: PHP - Jak zavolat defaultní metodu při neexistenci požadovaní metody
Nahodou __call __get __set su velmi pekne prasarny - vyuzitelne pri metaprogramovani, ja som si vdaka nim do PHP pridal syntakticke cukry inspirovane funkcionalnymi jazykmi.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.