PHP 缓冲区控制函数

控制器输出变量到前台的 render方法构造

<?php
class Controller
{
 	public function render($viewName, $data=array())
    {   
    	$viewName = THEME.$viewName.'.php';
    	if(!is_file($viewName))
			echo "The template file '$viewName' does not exist.";
		if (!empty($data)) {
			extract($data, EXTR_PREFIX_SAME,'data'); # @1
		}
        ob_start(); # @2
        ob_implicit_flush(0); # @3
        require($viewName);
        echo ob_get_clean();exit; # @4
    }   
}

@1. extract() 函数

	<?php
	$data = array('one'=>1, 'two'=>2, 'three'=>3);
	$num = extract($data);
	foreach ($data as $k => $v) {
	    echo $$k;
	    echo '***';
	}
	var_dump($num);

	# extract()
	# 函数从数组中将变量导入到当前的符号表。
	# 该函数使用数组键名作为变量名,使用数组键值作为变量值。
	# 针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
	# 该函数返回成功设置的变量数目。

@2.ob_start()
打开输出缓冲区,所有的输出信息不再直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函 数用于处理输出结果信息

@3.ob_implicit_flush()
将打开或关闭绝对(隐式)刷送。绝对(隐式)刷送将导致在每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用。

flush() 刷新输出缓冲,此函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。

@4.ob_get_clean()
获取缓冲区内容输出后清空缓冲区内容。

原理文章:https://www.cnblogs.com/raobenjun/p/8086051.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值