webForumDet fria alternativet

Konvertera sträng till en funktion

PHP

3 svar · 252 visningar · startad av Sabotnick

Medlem sedan feb. 200377 inlägg
Frågan#1

Hur får man en sträng som innehåller funktionens namn att anropa en funktion vars namn den innehåller.

ex.
$core = "getHead";
eller
$core = "getHead()";

och med hjälp av $core vill vi anropa getHead()

Medlem sedan aug. 20002 975 inlägg
#2

Det borde funka med:

$core = "getHead";
eval( $core.'();' );
Medlem sedan aug. 2001153 inlägg
#3

call_user_func ( callback function [, mixed parameter [, mixed ...]])

http://se.php.net/manual/en/function.call-user-func.php

Tycker jag låter mera rätt.

Medlem sedan okt. 20023 030 inlägg
#4

Kent.J skrev:

call_user_func ( callback function [, mixed parameter [, mixed ...]])

http://se.php.net/manual/en/function.call-user-func.php

Tycker jag låter mera rätt.

Det finns inget mer rätt i det här fallet då båda fungerar lika bra. Det är mer en smaksak.

$core = "getHead();";
eval($core);

// eller

$core = "getHead";
call_user_func($core);

Jag personligen skulle använda den första för att jag är van vid det.

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)