2010-11-30 1 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

を見たときにそのようラムダの内部でHTMLを出力すると、奇数であるかどうかを質問ラムダが使用されるコンテキスト。サンプルコードはあまり意味がありません。 'sample'関数は決してコールバックを実行しません。また、 'sample'に示されているように連結したい場合、ラムダは' return'ではなく 'echo'をしていますか? – Gordon

+0

私はコードを修正しました。私はそれを知っていますが、関数を呼び出すことは可能ですか? – Emil

+0

私はこれを悪い習慣と考えています。 –

答えて

0

あなたが何かを出す場合は、output controlob_startを使用して出力をバッファリングする場合にのみ、その出力を得ることができます:

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

素晴らしい!クールな感謝! – Emil

関連する問題