此操作的输出将是什么?
ob_flush();
session_start();
ob_start();
echo ('hi');
PRINT ' there';
ob_end_clean();
{
' Programmer';
}我在做一些PHP问题,我发现了这个。这个问题的解决方案是什么?有什么想法吗?
发布于 2012-04-16 13:27:50
它不会打印任何内容。由于使用ob_start()打开了输出缓冲,因此ob_end_clean()将“清除(擦除)输出缓冲区并关闭输出缓冲”。
和
{
' Programmer';
}除了将string声明为文本外,什么也不做。
发布于 2012-04-16 13:27:08
这是我运行它时得到的输出...
PHP Notice: ob_flush(): failed to flush buffer. No buffer to flush in /Users/foo/source/test.php on line 2
PHP Stack trace:
PHP 1. {main}() /Users/foo/source/test.php:0
PHP 2. ob_flush() /Users/foo/source/test.php:2
Notice: ob_flush(): failed to flush buffer. No buffer to flush in /Users/foo/source/test.php on line 2
Call Stack:
0.0009 624552 1. {main}() /Users/foo/source/test.php:0
0.0027 624600 2. ob_flush() /Users/foo/source/test.php:2这就是所有的代码,或者是关于它应该如何运行的说明?正如Jonathon指出的,这是在命令行上运行的。通过Apache或其他web服务器运行,我希望它不会输出任何内容,因为Jonathon在他的回答中提到了这个原因。不过,了解CLI的行为还是很有用的
发布于 2012-04-16 13:32:58
ob_flush();将不工作,没有刷新,可能plast warningssession_start();不会工作,并且肯定会因为前面的函数callob_start();打开输出bufferingecho ('hi');回显到输出bufferPRINT ' there';也到输出bufferob_end_clean();发送缓冲区内容到忽略,因为没有变量得到它的return{花括号,nothing fancy' Programmer';不会做任何事情。我确信我可以像之前那样隐藏我的信用卡号码here
}所以,充其量:没有输出。在最坏的情况下:屏幕上可能会出现3-4个警告。取决于display_errors的php配置。
https://stackoverflow.com/questions/10168978
复制相似问题