PHP 使用二进制保存用户状态的实例
时间:2019-04-13
本文章向大家介绍PHP 使用二进制保存用户状态的实例,主要包括PHP 使用二进制保存用户状态的实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
用户状态保存是一个很常见的需求,一般用来保存用户状态的方式是在数据库表中创建多个字段来存储相应的用户状态,比如要保存用户是否绑定了手机号和QQ,则需要2个字段(mobile,qq)来保存。
如果使用二进制来保存用户的状态的话则只需要1个字段(status)就能保存多个用户状态。
当然使用二进制来保存也有一些坏处,比如不能存储详细的信息,只能用来判断状态,而且在数据库中可读性也比较差。下面是一个比较简单的Demo。
代码
<?php /** * 使用二进制来保存用户状态 */ //首先定义4个用户状态 define('MOBILE', 1); //手机号绑定 define('EMAIL', 2); //邮箱绑定 define('WECHAT', 4); //微信绑定 define('QQ', 8); //QQ绑定 //模拟用户类 class User { public $user_name = ""; public $status = 0; //用来保存用户状态 function __construct($user_name, $status) { $this->user_name = $user_name; $this->status = $status; } } //new一个测试用户 $test_user = new User("test_user", 0); //先判断用户是否绑定了手机号 if (($test_user->status & MOBILE) == MOBILE) echo "first:该用户已经绑定手机号,用户状态是:" . $test_user->status . "</br>"; else echo "first:该用户没有绑定手机号,用户状态是:" . $test_user->status . "</br>"; //接着该用户去绑定了手机号 微信 和 QQ $test_user->status = MOBILE | WECHAT | QQ; //再判断一下用户是否绑定了手机号 if (($test_user->status & MOBILE) == MOBILE) echo "second:该用户已经绑定手机号,用户状态是:" . $test_user->status . "</br>"; else echo "second:该用户没有绑定手机号,用户状态是:" . $test_user->status . "</br>"; //再判断一下用户有没有绑定邮箱 if (($test_user->status & EMAIL) == EMAIL) echo "third:该用户已经绑定邮箱,用户状态是:" . $test_user->status . "</br>"; else echo "third:该用户没有绑定邮箱,用户状态是:" . $test_user->status . "</br>"; //然后这个用户解除了手机号绑定 $test_user->status = ($test_user->status & (~MOBILE)); //再次判断用户是否绑定了手机号 if (($test_user->status & MOBILE) == MOBILE) echo "fourth:该用户已经绑定手机号,用户状态是:" . $test_user->status . "</br>"; else echo "fourth:该用户没有绑定手机号,用户状态是:" . $test_user->status . "</br>";
以上这篇PHP 使用二进制保存用户状态的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- HDUOJ--点球大战
- Golang语言社区--使用百度API获取经纬度
- HDUOJ---The number of divisors(约数) about Humble Numbers
- HDUOJ----最少拦截系统
- Go语言截取字符串函数用法
- HDUOJ -----免费馅饼
- HDUOJ----Super Jumping! Jumping! Jumping!
- HDUOJ----数塔
- Golang语言-并发支持
- HDUOJ-----I NEED A OFFER!
- HDUOJ---2546 饭卡
- 假期前的数据库检查脚本之主备关系(r11笔记第46天)
- HDUOJ----1003 Max Sum
- HDUOJ--Bone Collector
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android实现选项菜单子菜单
- Android scrollview如何监听滑动状态
- android 自定义圆角button效果的实例代码(自定义view Demo)
- Android开发简易音乐播放器
- Android 自定义ListView实现QQ空间界面(说说内包含图片、视频、点赞、评论、转发功能)
- Android自定义View实现自动吸附功能
- Qt音视频开发35-Onvif图片参数
- alpine安装openssl
- iOS14中的PHPicker
- Android 如何实现动态申请权限
- Android录屏的三种解决方案
- Android 实现将Bitmap 保存到本地
- Android Gradle依赖管理、去除重复依赖、忽略的方式
- Andriod Studio实现保存QQ密码功能(案例代码详解)
- Android Studio编写微信页面提交功能