0

驚いたことに、ユーザー定義関数内で ob_ 関数を使用してこの関数を複数回呼び出すことはできないことを発見しました。これは、2 番目の出力が出力されないためです。

ここに私の単純化されたファイルがあります

index.php

function foo($data){
    ob_start();
    require_once("tpl.php");
    $html = ob_get_clean();
    return $html;   
}

echo foo('Hello');
echo foo('World!');

tpl.php

<p>and now I say... <?php echo $data; ?><p>

私はこの出力を期待します:

and now I say... Hello
and now I say... World!

代わりに、これだけを取得します。

and now I say... Hello

どこが間違っていますか?足りないものはありますか?私はPHP 5.3を使用しています...よろしくお願いします

4

1 に答える 1

1

パーツをドロップし_onceます。交換:

require_once("tpl.php");

と:

replace("tpl.php");

また:

include("tpl.php");

それ以外の場合は、テンプレート ファイルを 1 回だけ使用します。

于 2013-06-12T15:06:56.220 に答える