0

这将是什么输出?

ob_flush();
session_start();
ob_start();
echo ('hi');
PRINT ' there';
ob_end_clean();
{
      ' Programmer';
}

我正在研究一些PHP问题,我来了。这个问题的解决方案是什么?任何的想法?

4

3 回答 3

3

它不会打印任何内容。由于使用 开启了输出缓冲ob_start()ob_end_clean()将“清理(擦除)输出缓冲区并关闭输出缓冲”。

{
      ' Programmer';
}

除了将字符串声明为文字外,什么都不做。

于 2012-04-16T05:27:49.830 回答
1

好吧,这是我运行它时得到的输出......

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 服务器运行,我希望它不会为他的回答中提到的 Reason 的 Jonathon 输出任何内容。了解 CLI 的行为仍然很有用

于 2012-04-16T05:27:07.977 回答
0
  • ob_flush();不起作用,没有什么可以冲洗的,也许是警告
  • session_start();由于先前的函数调用,将无法正常工作并且肯定会发出警告
  • ob_start();打开输出缓冲
  • echo ('hi');回显到输出缓冲区
  • PRINT ' there';也进入输出缓冲区
  • ob_end_clean();将缓冲区内容发送到遗忘,因为没有变量得到它的返回
  • {花括号,没什么花哨的
  • ' Programmer';不会做任何事。所以确定我可以在这里隐藏我的信用卡号码
  • }像之前一样

所以,充其量:没有输出。在最坏的情况下:屏幕上可能会出现 3-4 个警告。取决于display_errorsphp 配置。

于 2012-04-16T05:32:57.560 回答