消灭IF

来源:互联网 发布:行业研究员工资 知乎 编辑:程序博客网 时间:2024/04/30 07:57

/**
* 生成随机码类
* @author 陆旭
* @version 1.0
* @date 2012-03-31
*/
class RandCode {

// 数字类型随机码
const NUM = 0;

// 数字加小写字母类型随机码
const NUM_LOWERCASE = 1;

// 数字加字母类型随机码
const NUM_LETTER = 2;

// 随机码长度
private $length = 0;

// 随机码类型
private $type = 0;

// 存放随机码数组
private $letters = array();

// 排除的码
private $except = array();

/**
* 填充随机码方法
* @return void
*/
private function fillLetters()
{
// 填充0-9范围的数字
$this->letters[self::NUM] = range(0, 9);

// 用0-9范围的数组合并a-z范围的数组
$this->letters[self::NUM_LOWERCASE] = array_merge($this->letters[self::NUM], range('a', 'z'));

// 用0-9a-z范围的数组合并A-Z范围的数组
$this->letters[self::NUM_LETTER] = array_merge($this->letters[self::NUM_LOWERCASE], range('A', 'Z'));
}

/**
* 构造方法
* @param int $type 随机码类型
* @param int $length 随机码长度
* @param array $except 排除的字符和数字,用array约束类型
* @return void
*/
public function __construct($type = self::NUM, $length = 5,array $except = array())
{
$this->type = intval($type);
$this->length = intval($length);
$this->except = $except;
$this->fillLetters();
}

/**
* 返回随机码方法
* @return string
*/
public function getString()
{
return substr(str_shuffle(join('', array_diff($this->letters[$this->type], $this->except))), 0, $this->length);
}

public function __toString()
{
return $this->getString();
}
}

$code = new RandCode(RandCode::NUM_LETTER, 5, array(1,2,8,0,'l','z'));

echo $code;

原文地址:http://bbs.lampbrother.net/read-htm-tid-117512.html

阅读(50) | 评论(0) | 转发(0) |
0

上一篇:工作学习至于品读人生-两碗牛肉面

下一篇:模拟系统函数array_map

相关热门文章
  • 上海律师事务所
  • 备胎姑娘的故事
  • 丛林环境真人CS野战(济南真人...
  • 广州如何指挥一场胜利的真人CS...
  • 上海律师事务所
  • IP Sec VPN与NAT破镜重圆
  • 网站导航
  • GoAgent图文设置教程
  • UT2.0正式版下载
  • tomcat6.0配置(含配置视频下载...
  • 大家都是用什么来管理hadoop集...
  • 网站被人挂了吗,添加了些程序...
  • Nginx如何保证不走宕机的那个...
  • 大家谈谈MYSQL客户端和服务器...
  • 以下代码运行后为何会输出5?...
给主人留下些什么吧!~~