2013-06-12 2 views
0

큰 놀라움으로 사용자 정의 함수 내에서 ob_ 함수를 사용할 수없고이 함수를 두 번 이상 호출 할 수 없다는 것을 발견했습니다. 여기에 나오는함수 내에서 ob_ stuff 사용하여 두 번 이상 호출하십시오

내 단순화 된 파일입니다

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 해요 ... 는

답변

1

를 드롭 _once 부분 사전에 감사합니다.

require_once("tpl.php"); 

로 :

replace("tpl.php"); 

또는 : 교체 그렇지

include("tpl.php"); 

한 번만 템플릿 파일을 사용합니다.

+0

감사합니다. "_once"부분은 정말로 "한 번 - 그리고 - 결코 - 다시는", 나는 기억할 것입니다! – Ivan

관련 문제