Portál AbcLinuxu, 15. července 2025 22:49


Dotaz: Jak zjistit jestli existuje metoda ve stejné class

30.4.2012 22:18 Dušan S.
Jak zjistit jestli existuje metoda ve stejné class
Přečteno: 217×
Odpovědět | Admin
Ahoj, jde prosím zjistit v php jestli existuje metoda ve stejné class ze které se to bude oveřovat? Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.4.2012 23:25 Dušan S.
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vážně nikdo nevíte? :-(
Josef Kufner avatar 30.4.2012 23:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
Odpovědět | | Sbalit | Link | Blokovat | Admin
Viz method_exists().
Hello world ! Segmentation fault (core dumped)
30.4.2012 23:38 Dušan S.
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
To jsem četl, ale to patrně není pro to co bych potřeboval, jelikož ty parametry nedávají smysl, pochopim ještě ten druhý parametr ale určitě nechápu k čemu tak je jako 'folder'.. Díky
Josef Kufner avatar 30.4.2012 23:41 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
Folder? Té funkci dáš objekt a název metody, a když to vrátí true, tak ta metoda existuje. Co jiného bys chtěl?
Hello world ! Segmentation fault (core dumped)
30.4.2012 23:54 Dušan S.
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
Pardon, blbě jsem to přečetl, v každém případě ale co potřebuji je, že potřebuji zjistit jestli existuje metoda v té stejné class ze které je volaná ta kontrola, tak proč musím vytvářet instanci? Není to hloupost? Díky. Ještě jsem našel tohle
return method_exists(__CLASS__,$method);
ale taky to nefunguje :-(
Jan Drábek avatar 1.5.2012 07:54 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
class Test {

public function maMetodu($name) { return method_exists($this,$name); } // V pripade statickeho kontextu misto $this pouzit self

}
A ta funkce bere dva parametry aby byla dost obecná... Pokud ta class neexistuje, nezbyde než ji vytvořit.
01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
Josef Kufner avatar 1.5.2012 09:46 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
Tu instanci nemusíš vytvářet, protože ji někde už nejspíš budeš mít.
return method_exists($this, $method);
A pokud ne, tak s největší pravděpodobností něco děláš špatně.
Hello world ! Segmentation fault (core dumped)
1.5.2012 10:42 Kit
Rozbalit Rozbalit vše Re: Jak zjistit jestli existuje metoda ve stejné class
Mně to funguje nejen v dynamické, ale i ve statické podobě, takže instanci vytvářet nemusíš:
<?php
class Test {
  static function maMetodu($method) {
    return method_exists(__CLASS__,$method);
  }
}

echo "aa: ",Test::maMetodu('aa'),"\n";
echo "maMetodu: ",Test::maMetodu('maMetodu'),"\n";
1.5.2012 14:00 Zadejte prosím své jméno.
Rozbalit Rozbalit vše OT: Re: Jak zjistit jestli existuje metoda ve stejné class
Odpovědět | | Sbalit | Link | Blokovat | Admin
Absolutne nechapu, k cemu je to dobre, mohl bys to nejak rozvest?

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.