我在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
;但是没有好处,因为在脚本或具有多个全局变量的应用程序中,我如何声明所有变量或我将如何现在会有什么变量。有什么建议吗?