记使用数组做缓存的方法

先来看下面这段代码:当$value['userid']的值存在大量的相同值的话,每次循环 new Class_A 会造成资源浪费,$arr 中的数据少的话还不太明显,若数据量大的话,每次循环都创建对象,就会十分浪费资源了。
(当然数据量过多,最好不要使用数组去存储,在此只是做一个示例)


foreach ($arr as $value) {
	if($value){
		//初始化参数
		$a = null;
		$user_info = array();

		$a = new Class_A($value['userid']);
		$user_info = $a->getUserInfo();

		if($user_info['name'] == 'test'){
			/***代码段***/
		}else{
			/***代码段***/
		}
	}
}

在$arr中,当 $value['userid'] 的值有重复,且用到$value['userid']的这段代码比较耗费资源的时候,可以用一个数组来做缓存,避免资源的浪费。代码如下:

$userid = array();
foreach ($arr as $value) {
	if($value){
		//初始化参数
		$a = null;
		$user_info = array();

		if($userid[$value['userid']]){
			$user_info['name'] = 'test';
		}else{
			//比较消耗资源的一段代码
			$a = new Class_A($value['userid']);
			$user_info = $a->getUserInfo();
		}

		if($user_info['name'] == 'test'){
			//$value['userid']作为key的值,存入$userid数组中
			$userid[$value['userid']] = 1;
			/***代码段***/
		}else{
			/***代码段***/
		}
	}
}

使用上面这种方式,可以避免不必要的资源被浪费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值