使用ob_start时如何维护全局变量?

时间:2014-01-10 03:38:13

标签: php global-variables ob-start

我在1周内遇到这个问题,我需要解决这个问题。

如果我测试此代码,它运行良好:

<?php

$t = 3;

function callme()
{
   global $t;
   echo "The value of t is " . ($t == null?"null":$t);
}

callme();

// output: The value of t is 3

?>

但是,如果我使用ob_start(),我丢失了全局变量:

<?php

$t = 3;

function callme()
{
   global $t;
   echo "The value of t is " . ($t == null?"null":$t);
}

register_shutdown_function( "callback_on_exit" );

function callback_on_exit()
{
   $output = ob_get_contents();
   ob_end_clean();
   echo str_replace( "The", "My", $output );
}
ob_start();
callme();
exit;

    // output: My value of t is null

?>

我找到的解决方案是在脚本的顶部添加“global $t;但是没有好处,因为在脚本或具有多个全局变量的应用程序中,我如何声明所有变量或我将如何现在会有什么变量。有什么建议吗?

0 个答案:

没有答案