PHP的输出缓存是可以嵌套的。用ob_get_level()就可以输出嵌套级别。

测试发现在cli和浏览器下输出结果不一样(PHP5.4)。

手册说明如下:

ob_get_level() will always return 0 inside a destructor.

This happens because the garbage collection for output buffers has already done before the destructor is called

想要正确输出也很简单:

ob_end_clean();

echo ob_get_level(); //0

回到正题:

ob_end_clean();

ob_start();

echo 'php1';//此处并不会在页面中输出

$a = ob_get_level();

$b = ob_get_contents();//获得缓存结果,赋予变量

ob_clean();

ob_start();

echo 'php2';//此处并不会在页面中输出

$c = ob_get_level();

$d = ob_get_contents();//获得缓存结果,赋予变量

ob_clean();

ob_start();

echo 'php3';//此处并不会在页面中输出

$e = ob_get_level();

$f = ob_get_contents();//获得缓存结果,赋予变量

ob_clean();

echo 'level:'.$a.',ouput:'.$b.'
';

echo 'level:'.$c.',ouput:'.$d.'
';

echo 'level:'.$e.',ouput:'.$f.'
';

结果如下:

level:1,ouput:php1

level:2,ouput:php2

level:3,ouput:php3

当然,当你关闭某个级别的缓冲,如下测试:

ob_end_clean();

ob_start();

echo 'php1';

$a = ob_get_level();

$b = ob_get_contents();

ob_clean();

ob_start();

echo 'php2';

$c = ob_get_level();

$d = ob_get_contents();

ob_end_clean();  //清空缓存并关闭缓存

ob_start();

echo 'php3';

$e = ob_get_level();

$f = ob_get_contents();

ob_clean();

echo 'level:'.$a.',ouput:'.$b.'
';

echo 'level:'.$c.',ouput:'.$d.'
';

echo 'level:'.$e.',ouput:'.$f.'
';

结果如下:

level:1,ouput:php1

level:2,ouput:php2

level:2,ouput:php3

php输出语句中怎么嵌套计算,PHP嵌套输出缓冲代码实例相关推荐

  1. 成功解决for循环语句中,后几次循环输出数据一直全部为空

    成功解决for循环语句中,后几次循环输出数据一直全部为空 目录 解决问题 解决思路 解决方法 解决问题 for循环语句中,后几次循环输出数据一直全部为空

  2. Java输出语句以及一些占位符在输出语句中的使用

    Java输出语句以及一些占位符在输出语句中的使用 System.out.print(); Syetem.out.printf(); System.out.println(); print就是一般的标准 ...

  3. JAVA中输出语句中+的作用

    System.out.println()输出语句里面的+号,根据俩边的数据类型作不同处理,有俩种情况. ①+后输出字符串,例如1+"a"输出的就是1a ②+后输出数字,而不是字符串 ...

  4. python如何按列输出_pandas中的DataFrame按指定顺序输出所有列的方法

    问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99, ...

  5. java输出100内质数,计算数量,输出美观,两种输出顺序

    代码:(亲写有效)标注.解释,非常清晰,适合小白,另有缩减运行时间的优化版 1.普通版,输出形式:质数从大到小输出 class dada{ public static void main(String ...

  6. 编写一个python程序、输出如下图形效果_Tkinter模块编写Python图形界面代码实例...

    本篇文章小编给大家分享一下Tkinter模块编写Python图形界面代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 一.为何使用Tkinter ...

  7. PHP输出语句echo需要注意的地方 (输出html语句,输出中包含运算符)

    输出html语句 在输出html语句的时候常常需要使用到形如class="container"这样的语句,如果直接在echo中添加class="container&quo ...

  8. php输出语句中空格怎么表示_在PHP中如何输出空格?

    可以分为两种情况: 1.空格是一个字符串,前后使用引号(但双均可),然后用echo就可以输出,例如下面的语句输出两个空格. 2.一般情况下网页会过滤多余的空格,解决方法有两种,一是使用中文的全角空格, ...

  9. java输出语句中_JAVA输出语句中怎样将变量放到句子中?

    结合问题描述和图2,感觉题主应该是想知道,Java如何同时输出自定义的字符串和变量,但是看了看图1又稍微有点疑惑.因为图1本身就提供了解决方案的,不过回想自己初学时也经常一头雾水,所以就尽量讲仔细点, ...

最新文章

  1. Python培训分享:python如何用cookie实现自动模拟登录?
  2. Nacos实现原理详解
  3. shell脚本编写乘法口诀
  4. Vertical Menu ver4
  5. CF176E Archaeology(set用法提示)
  6. php生成vcf,详解PHP如何实现生成vcf vcard文件
  7. tf.app.flags和tf.app.run的使用
  8. awk分割列-【AWK学习之旅】
  9. WCF客户端动态设置WCF服务器主机的地址的方法参考,可以连接多个相同WCF主机的方法...
  10. myeclipse中将web项目部署到tomcat里面出错
  11. Ubuntu - 安装gcc
  12. subprocess解决僵尸进程
  13. 期权波动率套利策略之谜
  14. 硬盘sata供电不启动,必须用大4pin转sata的情况
  15. nas网络存储_网络附加存储NAS
  16. 2016 新学++ , 回顾过去展望未来
  17. 新建一个html代码页面,三分钟教你创建一个简单的网页
  18. 计算机专业的大一学生暑假6,一个计算机专业大三学生的一天 Day6
  19. 2022-2028年中国医用纺织品行业市场发展潜力及投资风险预测报告
  20. 加密聊天软件(技术文档)

热门文章

  1. C++ 'dynamic_cast' and Java 'instanceof' 使用对比
  2. AD 组策略应用与排错(1应用)
  3. 一个人的命运决定于晚上8点到10点之间...
  4. 2018软工第六次作业
  5. 在maven 2工程中加入iTextAsian支持(maven添加自定义jar包到本地仓库)
  6. 201506110248 ---实验报告
  7. HDU 1242 Rescue
  8. C++多重继承时调用相应的父类函数
  9. POJ PKU 2305 java大数进制转化 JAVA 大数转换成字符串 转
  10. 大数据_Flink_数据处理_运行时架构2_作业提交流程_抽象架构---Flink工作笔记0017