记使用数组做缓存的方法

版权声明:本文为本小白原创文章,(转载请说明出处,标明链接) 文中若有错误,敬请指正!——————编程不过是一门失传的艺术的别名,这门艺术的名字叫做“思考”。 https://blog.csdn.net/qq_32737755/article/details/85387902

先来看下面这段代码:当$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{
			/***代码段***/
		}
	}
}

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

猜你喜欢

转载自blog.csdn.net/qq_32737755/article/details/85387902
今日推荐