我在 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
在脚本的顶部添加“; ?