Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nazwa funkcji zadeklarowana w zmiennej
Forum PHP.pl > Forum > PHP
Majzer
Mam taki problem:

Otóż mam nazwę funkcji wyswietlCos(); No i ta nazwa wyswietlCos(); zawarta jest w zmiennej np. $a w postaci:
  1. <?php
  2. $a = '123wyswietlCos();123';
  3. ?>

Zastosowałem funkcję explode(); i mam tak:
  1. <?php
  2. $odczyt = explode('123', $tresc);
  3. ?>

No i wobec tego wyswietlCos(); jest w $odczyt['1']. I tu pojawiają się schody, ponieważ chce, aby została wywołana funkcja, a nie jej nazwa.

Jeśli dam:
$odczyt['1'] -> nic się nie pojawi

jeśli dam:
$a = $odczyt['1'] -> też nic się nie pojawi,

a jeśli dam
echo $odczyt['1'] -> pojawi się tylko nazwa funkcji

jeśli natomiast dałbym normalnie:
$a = wyswietlCos(); wtedy dopiero pojawia mi się to co chcę osiągnąc czyli rozpoczyna się funkcja.

Wie może ktoś jak mogę ze zmiennej wydobyć to, aby wywołać daną funkcję?
mike
Czyżby chodziło Ci o eval()?
A powiem mi jeszcze co chcesz osiągnąć kombinując tak jak koń pod górę ?
cicik
Powinno zdziałać coś takiego:

Jeżeli w zmiennej $odczyt[1] będziesz miał ciąg znaków wyswietlCos (bez nawiasow) to musisz zrobić:

$a = $odczyt[1];

i potem:

$a();

ewentualnie:

{$a}();

albo od razu:

{$odczyt[1]}();

Ale i tak nie wiem po co tak kombinowac.
Można też postąpić jak kolega moderator wyżej zaproponował.
thornag
Callback/eval jak pisal Mike ?
NuLL
Cytat
Jeśli dam: $odczyt['1'] -> nic się nie pojawijeśli dam:$a = $odczyt['1'] -> też nic się nie pojawi,

Evale callbacki - laugh.gif

  1. <?php
  2. $odczyt['1']();//nie czy bedzie dzialac
  3.  
  4. $a();//to juz napewno.
  5. ?>
Denver
call_user_func
cicik
Cytat(NuLL @ 14.09.2006, 01:06:48 ) *
  1. <?php
  2. $odczyt['1']();//nie czy bedzie dzialac
  3. ?>


To na pewno nie bedzie dzialac.

Cytat(NuLL @ 14.09.2006, 01:06:48 ) *
  1. <?php
  2. $a();//to juz napewno.
  3. ?>


To NA PEWNO dziala. Sprawdzone praktycznie.
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.