首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于PHP的客观问题

关于PHP的客观问题
EN

Stack Overflow用户
提问于 2012-04-16 13:11:19
回答 3查看 621关注 0票数 0

此操作的输出将是什么?

代码语言:javascript
复制
ob_flush();
session_start();
ob_start();
echo ('hi');
PRINT ' there';
ob_end_clean();
{
      ' Programmer';
}

我在做一些PHP问题,我发现了这个。这个问题的解决方案是什么?有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-16 13:27:50

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

代码语言:javascript
复制
{
      ' Programmer';
}

除了将string声明为文本外,什么也不做。

票数 3
EN

Stack Overflow用户

发布于 2012-04-16 13:27:08

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

代码语言:javascript
复制
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的行为还是很有用的

票数 1
EN

Stack Overflow用户

发布于 2012-04-16 13:32:58

  • ob_flush();将不工作,没有刷新,可能plast warnings
  • session_start();不会工作,并且肯定会因为前面的函数call
  • ob_start();打开输出buffering
  • echo ('hi');回显到输出buffer
  • PRINT ' there';也到输出buffer
  • ob_end_clean();发送缓冲区内容到忽略,因为没有变量得到它的return
  • {花括号,nothing fancy
  • ' Programmer';不会做任何事情。我确信我可以像

之前那样隐藏我的信用卡号码here

  • }

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10168978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档