给你个例子就明白了ob_start();
echo 'level1='.ob_get_level().'<br/>';
ob_start();
echo 'level2='.ob_get_level().'<br/>';
ob_start();
echo 'level3='.ob_get_level().'<br/>';ob_end_flush();
ob_end_flush();
ob_end_flush();
echo 'level1='.ob_get_level().'<br/>';
ob_start();
echo 'level2='.ob_get_level().'<br/>';
ob_start();
echo 'level3='.ob_get_level().'<br/>';ob_end_flush();
ob_end_flush();
ob_end_flush();
=============
ob_start();
echo 'hello';//此处并不会在页面中输出
$a = ob_get_level();
$b = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
ob_start();
echo 'world';//此处并不会在页面中输出
$c = ob_get_level();
$d = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();
ob_start();
echo 'hi';//此处并不会在页面中输出
$e = ob_get_level();
$f = ob_get_contents();//获得缓存结果,赋予变量
ob_clean();echo 'level:'.$a.',ouput:'.$b.'<br>';
echo 'level:'.$c.',ouput:'.$d.'<br>';
echo 'level:'.$e.',ouput:'.$f.'<br>';
在第几个ob_start()之后
比如他的例子有三个ob_start(),所以输出的结果是:
level:1,ouput:hello
level:2,ouput:world
level:3,ouput:hi从手册上字面的理解就是:
得到输出缓存的第几层层数
if()
{
if()
{
if()
{}
}
}
就嵌套了三层
不知道我说的对不对?你怎么会用到这个函数呢?
可以把你看到这个函数的应用的代码发到我邮箱么?
[email protected]
谢谢!
我改了下上面那位兄弟的例子
<?php
ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();echo implode("<br/>", $a);?>你运行下,就知道这个level跟ob_start()的关系了!
if()
{
if()
{
if()
{}
}
}
的这种。那么这样嵌套的缓存又有什么意义呢?如果是类似于:
ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();ob_start();
$a[] = ob_get_level();
ob_clean();
的缓存,那么又怎么称得上是‘嵌套’呢?