2010-11-30 3 views
0
function sample($test1, $test2, $inner_html) { 
    $html = call_user_func($inner_html); 
    echo $test1 . ' ' . $test2 . ' ' . $html; 
} 


sample('test1', 'test2', function(){ 
        echo 'first test.' 
     ?> 
     <b>this is a test.</> 
     <? 
        echo 'last test.'; 
}); 
+1

Die Frage html wie das innerhalb der Lambda-Ausgabe von ungerade ist, wenn bei der Suche Kontext, in dem das Lambda verwendet wird. Der Beispielcode macht wenig Sinn. Ihre "Beispiel" -Funktion führt den Rückruf niemals aus. Wenn Sie verketten möchten, wie in 'sample' angegeben, warum kehrt das Lambda dann nicht zurück, sondern" echo "? – Gordon

+0

Ich habe den Code geändert und jawohl ich weiß das, aber ist es möglich, Funktion so etwas zu nennen? – Emil

+0

Ich würde dies als eine schlechte Praxis betrachten. –

Antwort

0

Wenn Sie etwas aus setzen können Sie nur diese Ausgabe erhalten, wenn Sie den Ausgabepuffer mit dem output control ‚s ob_start: ob

function sample($test1, $test2, $inner_html) { 
    ob_start(); 
    $returnValue = call_user_func($inner_html); 
    $output = ob_get_clean(); 
    echo $test1 . ' ' . $test2 . ' ' . $output; 
} 
+0

genial! Cool, danke! – Emil

Verwandte Themen