Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dynamiczna nazwa funkcji
Forum PHP.pl > Forum > Przedszkole
matisq
Czy istnieje jakikolwiek sposób na utworzenie funkcji (wewnątrz klasy) z nazwą podaną jako zmienna? Wiem ze wprost raczej nei ma takiej możliwości ale może są jakieś boczne ścieżki smile.gif
  1. <?php
  2. class Example{
  3.  
  4. var $name;
  5.  
  6. function input($name){
  7. $this->name = (string)$name;
  8. }
  9.  
  10. function $this->name(){
  11. echo "Lorem Ipsum";
  12. }
  13.  
  14. }
  15.  
  16. $name = "John";
  17.  
  18. $obj = new Example();
  19. $obj->input($name);
  20. $obj->$name();
  21.  
  22. ?>

Zdaje mi się że popełniam tu ciężką herezję ale wolę spytać smile.gif Zatem proszę o wyrozumiałość smile.gif
mls
w PHP5 - __call" title="Zobacz w manualu PHP" target="_manual
matisq
Niestety kod musi być kompatybilny z PHP4..
dr_bonzo
No to wlasciwie idzie ci sie pociac smile.gif albo hosting zmienic.

A co cchesz zrobic, bo moze da sie to inaczej zrobic.
Zreszta po co ci inna nazwa funkcji jak w srodku niej kod i tak bedzie ten sam?
Piniek
Proszę o dodanie odpowiedniego tagu do tematu.
cbagov
Bez problemu.
Masz kawalek mojego obiektu.

function Cmd_Run ($Cmd)
{
$code = 'return ($this->'.$this->Commands[$Cmd].'());' ;
return eval ($code);
}

a Commands[$Cmd] to tablica gdzie sa zdefiniowane dozwolone nazwy komend np.

$this->Commands = array ("get_login"=>"lgn_get", "get_status"=>"stt_get", "get_ticket"=>"tick_get");

itd.
Oczywiscie nie musisz tego robic z uzyciem tablicy, kod o ktory ci chodzi jest w funkcji.

No i masz tez create_function()
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.