php生产随机数
2024-08-29 08:50:34
php生产随机数
要求
生产三种随机数
1、全数字
2、全字母,大小写
3、数字和大小写字母
代码
<?php
class RandString{
//这个属性表示我们随机数的长度,也就是个数
private $length;
//要哪些类型type为1的时候就是数字类型的,为2的时候字母类型,为3的时候就是数字加上字母的随机数
private $type; public function __construct($length,$type){
$this->length=$length;
$this->type=$type;
} public function randNum(){
switch ($this->type){
case 1:
return join(array_rand(range(0, 9),$this->length));
break;
case 2:
return join(array_rand(array_flip(array_merge(range('a', 'z'),range('A', 'Z'))),$this->length));
break;
case 3:
return join(array_rand(array_flip(array_merge(range(0, 9),range('a', 'z'),range('A', 'Z'))),$this->length));
break;
}
} } $strNum = new RandString(4,1);
echo $strNum->randNum();
echo '<hr/>';
$strNum = new RandString(4,2);
echo $strNum->randNum();
echo '<hr/>';
$strNum = new RandString(4,3);
echo $strNum->randNum();
echo '<hr/>';
echo '<hr/>';
echo '<hr/>';
echo print_r(range('a', 'z'));
echo '<hr/>';
echo print_r(array_flip(range('a', 'z')));
echo '<hr/>';
echo print_r(array_merge(range(0, 9),range('a', 'z'),range('A', 'Z')));
echo '<hr/>';
echo print_r(array_flip(array_merge(range(0, 9),range('a', 'z'),range('A', 'Z'))));
echo '<hr/>';
要点
这里就是几个函数的应用
1、join
join — Alias of implode()
implode — Join array elements with a string
2、array_rand
array_rand — Pick one or more random entries out of an array
3、array_flip
array_flip — Exchanges all keys with their associated values in an array
4、array_merge
array_merge — Merge one or more arrays
5、range
range — Create an array containing a range of elements
最新文章
- MongoDB基础命令笔记
- Qt 环境下MAPX组件的编程
- u-boot移植总结(三)(转)S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)
- Jenkins进阶系列之——15Maven获取Jenkins的Subversion的版本号
- Mysql 注意细节
- ajax+php+mysql更新
- windows xp 安装mysql5.6.17-ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password
- Krypton Factor
- 结合源码看nginx-1.4.0之nginx事件驱动机制详解
- CREATE PROCEDURE
- SQL Server 2008 开启数据库的远程连接
- ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
- JAVAFX-3 开发应用
- dojo加载树报错
- angular2的依赖注入
- [转]OpenGL通过VBO实现顶点数组绘制顶点
- MT【98】三元对称不等式
- 【FusionCharts学习-3】显示中国地图
- Android smartimageview网络图片查看器
- NHibernate连接oracle报错
热门文章
- MBR分区表格式 - 简明概述
- Object的wait和Thread的sleep
- easyui的datetimebox时间格式化详解
- SVD分解.潜语义分析.PythonCode
- day25-3 json,pickle模块
- C++进阶 STL(2) 第二天 一元/二元函数对象、一元/二元谓词、stack容器、queue容器、list容器(双向链表)、set容器、对组、map容器
- 自己对WEBGL坐标系的转换过程的理解【如图】
- select的option触发事件
- javaScript原型、闭包和异步操作
- js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法