Poslao: 26 Okt 2008 12:49
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Imam sledeci problem: u promenljivoj $pozovi imam neki string, i hocu da na osnovu sadrzaja te promenljive pozovem istoimenu f-ju - tj. ako je:
$pozovi = "nesto";
da se pokrene f-ja Nesto();
Znam da bi to moglo da se uradi preko switch-a, ali mi to resenje ne odgovara u potpunosti: jer mi treba pozivanje bilo koje f-je, bez prethodnog definisanja - tj sta god da se nadje u toj promenljivoj, da pozove f-ju sa tim imenom.
Moze li ovo da se uradi?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 26 Okt 2008 16:31
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Imas call_user_func i call_user_func_array [ ako hoces da proslijedis argumente kao prvi, drugi, ...]
<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>
|
|
|
|
|
Poslao: 26 Okt 2008 23:24
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Za prvo pitanje s pocetka teme, zar ne bi mogao stvari da resis uz pomoc eval()?
|
|
|
|
Poslao: 26 Okt 2008 23:47
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
@Rastafarii
Kad vec odvajas neke funkcije, sto ne napravis neke klase, imam osjecaj da ce ti tako biti organizovanije.
@bobby
Mislim da je eval dosta sporiji od gore navedene funkcije, a eval opcenito treba sto vise izbjegavati.
|
|
|
|
Poslao: 27 Okt 2008 00:35
|
offline
- stankovic
- Prijatelj foruma
- Pridružio: 11 Maj 2005
- Poruke: 871
- Gde živiš: Aleksinac - Niš
|
@igor86
Ta sporost ne bi uticala u ovom slucaju jer se radi o pozivu samo jedne funkcije. A da li je eval sporiji zavisi i od toga kako/gde/za sta se koristi.
|
|
|
|
Poslao: 27 Okt 2008 01:14
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
@stankovic
Sporost ne bi uticala? Ok, ja govorim sta je vecini slucajeva brze i funkcionalnije.
Zamisli da kroz eval moras da kao argument proslijedis neki niz ili object?
|
|
|
|
|
Poslao: 27 Okt 2008 02:01
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Evo ga, ima bolje, ubija brzinom i funkcionalnoscu
$pozovi = "nesto";
$pozovi();
|
|
|
|