天下网吧 >> 网吧天地 >> 天下码农 >> 桌面开发 >> VBS >> 正文

分析Discuz的核心代码:根据用户uid获取用户信息

2021-5-11天下码农程序猿

今天一起来样例代码分析下Discuz X!里面的一段代码,一起来看看代码:

function getuserbyuid($uid, $fetch_archive = 0) {
	static $users = array();
	if(empty($users[$uid])) {
		$users[$uid] = C::t('common_member'.($fetch_archive === 2 ? '_archive' : ''))->fetch($uid);
		if($fetch_archive === 1 && empty($users[$uid])) {
			$users[$uid] = C::t('common_member_archive')->fetch($uid);
		}
	}
	if(!isset($users[$uid]['self']) && $uid == getglobal('uid') && getglobal('uid')) {
		$users[$uid]['self'] = 1;
	}
	return $users[$uid];
}
这里要分析的是代码逻辑哈:

从第三行代码开始看起,如果用户的uid为空,那么就从数据库中读取,这里有点要注意,就是用户分表的情况下,如果传入的是从当前主分表里读取,那么就从分表主表里获取用户信息,根据uid来定位数据库记录。



本文来源:天下码农 作者:程序猿

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行