Autor | Zpráva | ||
---|---|---|---|
Iru Profil * |
#1 · Zasláno: 25. 5. 2010, 16:05:05
Mám sadu různých funkcí, každá má svůj název. Název funkce, kterou z nich potřebuju právě volat mám uložený v proměnné a teď mi jde o to, jak pomocí této proměnné volat požadovanou funkci...
Takhle to vypadá: function RizeniZobrazeni($NazevFunceZobrazenehoForm){ $this -> NazevFunkce = $NazevFunceZobrazenehoForm; $this -> ZobrazenyForm = $his -> $NazevFunkce(); return $this -> NazevFunkce; } jenže tento zápis mi píše chybu: Fatal error: Method name must be a string in, takže je to asi špatně, prosím o radu, jak to řešit, děkuji moc... |
||
Majkl578 Profil |
#2 · Zasláno: 25. 5. 2010, 16:07:11 · Upravil/a: Majkl578
Fungovalo by to, kdyby proměnná
$NazevFunkce byla definovaná a obsahovala platný název a kdyby jsi použil definovaný objekt (ne $his , ale $this ).
|
||
Iru Profil * |
#3 · Zasláno: 25. 5. 2010, 16:16:27
$NazevFunkce obsahuje řetězec 'zakladni_formular', což je název funkce, která existuje. $his byl překlep, kterého jsem si nevšimla, mám to opraveno, ale i tak to požadovanou funkci nevolá....
|
||
Majkl578 Profil |
#4 · Zasláno: 25. 5. 2010, 16:19:01
Trvám si na tom, co jsem řekl. Daná proměnná v této funkci/metodě neexistuje.
|
||
Iru Profil * |
#5 · Zasláno: 25. 5. 2010, 16:44:34
mám tuto proměnnou definovanou v dané třídě jako public $NazevFunkce;
a když z výše uvedené funkce smažu řádek $this -> ZobrazenyForm = $his -> $NazevFunkce(); function RizeniZobrazeniFormulareProduktu($NazevFunceZobrazenehoForm){ $this -> NazevFunkce = $NazevFunceZobrazenehoForm; return $this -> NazevFunkce; } tak mi funkce vrátí správnou hodnotu proměnné Jak ji mám tedy definovat? |
||
Majkl578 Profil |
#6 · Zasláno: 25. 5. 2010, 16:55:12
V tom případě se k ní přistupuje takto:
$this->NazevFunkce .
Tudíž to, čeho chceš docílit: $this->ZobrazenyForm = $this->{$this->NazevFunkce}(); .
Celé mi to přijde dost podivné a obávám se, že jde o chybu v oo návrhu. |
||
Iru Profil * |
#7 · Zasláno: 25. 5. 2010, 17:23:34
díky, ano, to je to, co jsem potřebovala...
chtěla jsem se vyhnout konstrukci switch |
||
Časová prodleva: 14 let
|
0