2016-03-24 11 views
0

Ich weiß nicht, wie das heißt.Php - Wählen einer Funktion zur Laufzeit

ich dies getan werden kann dies

// Elsewhere 
function A($arg){ 
    echo "Hi" . $arg; 
} 
function B($arg){ 
    echo "Bye" . $arg; 
} 

for($i=0;$i<2;$i++) 
{ 
    $FunctionUse = $i==0 ? A : B; 
    $FunctionUse("Rewind"); 
} 

tun wollen?

Antwort

1

Ja, mit call_user_func.

Stellen Sie außerdem sicher, dass Sie diesen Link überprüfen Variable functions

Auch wird Ihr Code arbeiten, wenn Sie die A und B sein Strings ändern, wie folgt aus:

$FunctionUse = $i==0 ? 'A' : 'B'; 
+0

Als Antwort für $ FunctionUse = $ i == 0 markiert? "A": "B"; – Rewind

-1

Verwendung call_user_func:

// Elsewhere 
function A($arg){ 
    echo "Hi" . $arg; 
} 
function B($arg){ 
    echo "Bye" . $arg; 
} 

for($i=0;$i<2;$i++) 
{ 
    $FunctionUse = $i==0 ? 'A' : 'B'; 
    call_user_func($FunctionUse, "Rewind"); 
} 
0

Hier ist ein kurzer und einfache Lösung:

$a = function ($arg){ 
    echo "Hi" . $arg; 
} 

$b = function ($arg){ 
    echo "Bye" . $arg; 
} 

for($i=0;$i<2;$i++){ 
    $FunctionUse = $i==0 ? $a : $b; 
    $FunctionUse("Rewind"); 
} 

Beachten Sie, dass die Funktion nun einen variablen Bereich hat. Möglicherweise müssen sie als global innerhalb einer Funktion oder Klasse definieren:

global $a, $b; 

Aber den Fall lösen Sie präsentieren, es ist einfacher zu benutzen eine if-Anweisung.

Verwandte Themen