php两个变量参数,怎么才能随机php 静态方法调用变量一个

&&&&&&&&&php array_rand 从数组中随机取出一个或多个值
php array_rand 从数组中随机取出一个或多个值
php array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。 本文章通过php实例向大家讲解array_rand 函数的使用方法,需要的码农可以参考一下。
array_rand & 从数组中随机取出一个或多个单元
mixed array_rand ( array $input [, int $num_req = 1 ] )
array_rand() 函数从数组中随机选出一个或多个元素,并返回。第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。
必需。输入的数组。
可选。指明了你想取出多少个单元。如果指定的数目超过了数组里的数量将会产生一个 E_WARNING 级别的错误。
如果你只取出一个, array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。
= array( "Neo" ,
"Morpheus" ,
"Trinity" ,
"Cypher" ,
$rand_keys = array_rand($input,2);
$input[$rand_keys[0]]."&br/&";
$input[$rand_keys[1]]."&br/&";
原文地址:
php知识点必读&&&&& php的引用(就是在变量或者函数、对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容.
变量的引用&&&&&&& PHP 的引用允许你用两个变量来指向同一个内容&
echo $a;//这里输出:ABC
echo $b;//这里输出:ABC
echo $a;//这里$a的值变为EFG 所以输出EFG echo $b;//这里输出EFG
&&&&&&函数的传址调用 传址调用我就不多说了 下面直接给出代码
function test(&$a){
$a=$a+100;
echo $b;//输出1 test($b);
//这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 echo "&br&"; echo $b;//输出101
&要注意的是,在这里test(1);的话就会出错,原因是:PHP规定传递的引用不能为常量(可以看错误提示)。
函数的引用返回 先看代码
function &test(){
static $b=0;//申明一个静态变量
return $b; }
$a=test();//这条语句会输出 $b的值 为1
$a=5; $a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5; $a=test();//这条语句会输出 $b的值 为6
下面解释下:  通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别 至于原因: 这是PHP的规定 PHP规定通过$a=&test(); 方式得到的才是函数的引用返回 至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。) 这句狗屁话 害我半天没看懂
&&&&&& 用上面的例子来解释就是 $a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变,都不会影响到函数中的$b,而通过$a=&test()方式调用函数呢, 他的作用是 将return $b中的 $b变量的内存地址与$a变量的内存地址 指向了同一个地方 即产生了相当于这样的效果($a=&b;) 所以改变$a的值 也同时改变了$b的值 所以在执行了 $a=&test(); $a=5; 以后,$b的值变为了5
这里是为了让大家理解函数的引用返回才使用静态变量的,其实函数的引用返回多用在对象中
对象的引用&
var $abc="ABC";
echo $b-&//这里输出ABC
echo $c-&//这里输出ABC $b-&abc="DEF";
echo $c-&//这里输出DEF
&&&&&& 以上代码是在PHP5中的运行效果 在PHP5中 对象的复制是通过引用来实现的。上列中$b= $c=$b; 其实等效于$b= $c=&$b; PHP5中默认就是通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone.
引用的作用 &&&&&& 如果程序比较大,引用同一个对象的变量比较多,并且希望用完该对象后手工清除它,个人建议用 "&" 方式,然后用$var=null的方式清除. 其它时候还是用php5的默认方式吧. 另外, php5中对于大数组的传递,建议用 "&" 方式, 毕竟节省内存空间使用。
取消引用 当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:
&?php $a = 1; $b =& $a; unset ($a); ?&
不会 unset $b,只是 $a。 function quoteTest(){ global $ //相当于 $var = &$GLOBALS['var']; unset($var); //删除只是删除引用,而引用的内容还存在,同上这并不意味着变量内容被销毁了}$var=1;quoteTest();echo $ //& 结果 1
----------------------------------------------------------------------------------------------
不会 unset $b,只是 $a。
function quoteTest(){ global $ //相当于 $var = &$GLOBALS['var']; $var = 5; //因为他们都指向 同一内存内容}$var=1;quoteTest();echo $ //结果 5----------------------------------------------------------------------------------------------
'&' 这就是引用
global 引用 当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的:
&?php $var =& $GLOBALS["var"]; ?&
这意味着,例如,unset $var 不会 unset 全局变量。
$this 在一个对象的方法中,$this 永远是调用它的对象的引用。
//下面再来个小插曲 php中对于地址的指向(类似指针)功能不是由用户自己来实现的,是由Zend核心实现的,php中引用采用的是&写时拷贝&的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的。
通俗的讲 1:如果有下面的代码 [php] $a="ABC"; $b=$a; [/php] 其实此时 $a与$b都是指向同一内存地址 而并不是$a与$b占用不同的内存
2:如果在上面的代码基础上再加上如下代码 [php] $a="EFG"; [/php] 由于$a与$b所指向的内存的数据要重新写一次了,此时Zend核心会自动判断 自动为$b生产一个$a的数据拷贝,重新申请一块内存进行存储
阅读(...) 评论()第一篇:php随机数用 PHP 生成随机数(另附 PHP 随机函数).txt 如果我能够看到自己的影子, 我想它一定很忧伤, 因为我把快乐都留在了前面。容易伤害别人和自己的人,总是对距离的边缘模糊不清的人。通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和 mt_rand()或 rand()生成 php 随机数,从字符池中随机选取字符,最后拼凑出需要的长度。
function randomkeys($length){ $pattern = 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&&?;#:@~[]{}-_=+)(*&^%$£&!'; //字符池 for($i=0;$i&$$i++) { $key .= $pattern{mt_rand(0,35)}; // 生 成 php 随 机 数 } return $}echo randomkeys(8);这个 php 随机函数能生成 XC*=z~7L 这样的字符串,够随机!
现在介绍另一种用 PHP 生成随机数的方法:利用 chr()函数,省去创建字符池的步骤。
function randomkeys($length){ $output=''; for ($a = 0; $a & $ $a++) { $output .= chr(mt_rand(33, 126)); //生成 php 随机数 } return $}echo randomkeys(8);在第二个 php 随机函数里, 先用 mt_rand()生成一个介于 33 到 126 之间的 php 随机数,然后用 chr()函数转化成字符。查看 ascii 码表就会发现,33 到 126 代表的正是第 一个函数中字符池里的所有字符。第二个函数和第一个函数功能相同,而且更简洁。
&?php //seed 用户自定义函数以微秒作为种子 function seed() { list($msec, $sec) = explode(' ', microtime()); return (float) $ }
//播下随机数发生器种子,用 srand 函数调用 seed 函数的返回结果 srand(seed()); //输出产生的随机数,随机数的范围为 10-100 echo rand(10,100); ?& 上面这个和下面这个不是没什么不同吗?都是随机输出 10-100 之间的数,新人学习,可能问的 太简单了呵呵 &?php echo rand(10,100); ?&
mt_rand(10,100); srand 是种子,如果不设的话默认是 1 rand 一般是利用种子做参数的一种固定的运算
你试一下就知道了,不设种子或者设一个固定的种子,运行 rand 然后再关了浏览器再开,再运行 rand 你会发现结果一直是一样的 但是如果用一个随机数做种子,那每次运行结果就近似于随机的
先说 rand()函数吧,rand([int min], [int max]) 本函数从 min 和 max 之间取一个随机 数。若没有指定随机数的最大及最小范围, 本函数会自动的从 0 到 RAND_MAX 中取一个随机数。
但是如果只用 rand()这个函数,随机数的乱度很大,每次在取随机数之前最好使用 srand() 函数,以配置新的随机数种子。
解释一下下面这个用法(一般都是这样用这两个函数的) srand((double)microtime()*1000000); $rand_number= rand();
microtime()返回了两个值:当前毫秒和时间戳,我们要提取随机数,只能从毫秒中取一个随 机数,(double)microtime()就只返回当前的毫秒值。microtime()是以秒为单位的毫秒数,因而值都是小数,乘以 1000000 将其换算为整数。
;它们的工作流程如下(1):首先,给 srand()提供一个”种子”;,它是一个 unsigned_int 类型的值。(2):_然后,调用 rand(),它会根据提供给 srand()的值返回一个随机数(范围在_0~32767 之 间) (3):根据需要多次调用 rand(),不断得到新的随机数。
(4):无论什么时候可以给 srand()提供一个新的“种子” ,从而进一步“随机化”rand()的 输出结果。
第一篇:php随机数创建图像
图像的生成步骤
实例-简单验证码的制作
?PHP 不仅限于只产生 HTML 的输出,还可以创建
及操作多种不同格式的图像文件。PHP提供了一些 内置的图像信息函数,也可以使用GD函数库创建 新图像或处理已有的图像。目前GD2库支持JPEG、 PNG和WBMP格式。但不再支持GIF格式。? JPEG 是一种压缩标准的名字,通常是用来存储照 片或者存储具有丰富色彩和色彩层次的图像。这 种格式使用了有损压缩。? PNG 是可移植的网络图像,对图像采用了无损压 缩标准。? WBMP是专门为无线通讯设备设计的文件格式。但是并没有得到广泛应用。
图像的生成步骤
在PHP中创建一个图像应该完成如下所示的4个步骤1.创建一个背景图像,以后的操作都基于此背景图像。2.在背景上绘制图像轮廓或输入文本。
3.输出最终图形
4.释放资源
创 建 背 景 绘 制 图 像 输 出 图 形 释 放 资 源
&?php // 创建背景图像 $height = 200; $width = 200; $im = ImageCreateTrueColor($width, $height); //建立 空白背景 $white = ImageColorAllocate ($im, 255, 255, 255);//设置 绘图颜色 $blue = ImageColorAllocate ($im, 0, 0, 64); ImageFill($im, 0, 0, $blue); //绘制背景 ImageLine($im, 0, 0, $width, $height, $white); //画线 ImageString($im, 4, 50, 150, 'Sales', $white); //添加字串 Header ('Content-typeimage/png'); ImagePng ($im); //以 PNG 格式将图像输出 ImageDestroy($im); ?&
? 函数:imagecreate 新建一个基于调色板的图像
语法resource imagecreate(int x_size,int y_size) ? 说明:本函数用来建立一张全空的图形,返回一 个图像标识符,参数代表了一幅大小为 x_size 和 y_size 的空白图像。单位为像素 (pixel)。? 函数Imagecreatetruecolor( )是新建一个真彩色 图像 ,需要 GD 2.0.1 或更高版本,不能用于 GIF 文件格式。
? 函数:imagecolorallocate( ) 为一幅图像分配颜
int imagecolorallocate ( resource image, int red, int green, int blue )
? 说明:本函数用来匹配图形的颜色,供其它绘图函数使用。
参数 image 表示图形的 handle。参数 red、green、blue 是色彩三原色,其值从 0 至 255。
? 函数:imagefill( ) 区域填充颜色
bool imagefill ( resource image, int x, int y, int color ) 说明本函数在 image 图像的坐标 x,y(图 像左上角为 0, 0)处用 color 颜色执行区域填充 (即与 x, y 点颜色相同且相邻的点都会被填充)。
? 函数:imageline( ) 画一条线段
语法bool imageline ( resource image, int x1, int y1, int x2, int y2, int color ) 说明:本函数用 color 颜色在图像 image 中 从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0) 画一条线段。
? 函数:imagestring( )
水平地画一行字符串
bool imagestring ( resource image, int font, int
x, int y, string s, int col ) 说明:本函数用 col 颜色将字符串 s 画到
image 所代表的图像的 x,y 坐标处(这是字符串左
上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。
? 函数:imagepng( ) 以 PNG 格式将图像输出到浏
览器或文件
语法bool imagepng ( resource image [, string filename] ) 说明:本函数将 GD 图像流(image)以 PNG 格式输出到标准输出(通常为浏览器),或者如果 用 filename 给出了文件名则将其输出到该文件。
我们将图像直接输出到浏览器,需包括两个步 骤。首先,需要告诉Web浏览器我们输出的是 一个图像而不是文本或HTML。这可以通过调 用Header()函数指定图像的MIME类型输出 完成。Header (‘content-typeimage/png’);
第二步就是用函数ImagePng( )输出图像数
? 函数:agedestroy ( ) 销毁一图像
语法:bool imagedestroy ( resource image ) 说明:本函数释放与 image 关联的内存。
image 是由图像创建函数返回的图像标识符,
例如imagecreatetruecolor( )。
实例-简单验证码的制作
12 3上. 例子产生随机数文件:rand.php 随机产生4个字符. 0---9 ,A---Z ,a--- z 将四位字符作为图像显示在浏览器
显示图片:checknumber.php
rand.php&?php for($i=0;$i&4;$i++) { $number=rand(0,2); switch($number) { case 0 $rand_number=rand(48,57); //数字 case 1 $rand_number=rand(65,90); //大写字母 case 2 $rand_number=rand(97,122); //小写字母 } $ascii=sprintf(&%c&,$rand_number); //echo $ $ascii_number=$ascii_number.$ } echo $ascii_ ?&
日期与时间的管理
在PHP中获取日期与时间 PHP与MySQL的日期格式转换 在PHP中计算日期 在MySQL中计算日期
在PHP中获取日期与时间
? date -- 格式化一个本地时间/日期
格式:string date ( string format [, int timestamp] ) 用做标准的日期/时间格式来指定 format 参数。timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。timestamp 是可选的,默认值为 time( )。
&?php echo date(“Ymd”);
echo date(“H:i:s”); ?& //输出当前日期// 输出时间:17:16:17
? time -- 返回当前的 Unix 时间戳
格式:int time ( void )
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
? mktime -- 取得一个日期的 Unix 时间戳
格式:int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] ) 根据给出的参数返回 Unix 时间戳。时间戳是一 个长整数,包含了从 Unix 纪元(January 1 :00 GMT)到给定时间的秒数。
&?php echo time( ); $nextWeek = time() + (7 * 24 * 60 * 60); // 7 24 60 60secs echo 'Now'. date('Y-m-d') .&\n&; echo 'Next Week'. date('Y-m-d', $nextWeek) .&\n&; echo mktime(0, 0, 0, 3, 0, 2000); echo date(&M-d-Y&, mktime(0, 0, 0, 12, 32, 1997)); ?&
? getdate -- 取得日期/时间信息
格式:array getdate ( [int timestamp] ) 返回一个根据 timestamp 得出的包含有日期 信息的结合数组。如果没有给出时间戳则认为 是当前本地时间。数组中的单元详见PHP手册&?php $today = getdate(); print_r($today); ?&
? checkdate -- 验证一个格里高里日期
格式:bool checkdate ( int month, int day, int year ) 如果给出的日期有效则返回 TRUE,否则返回 FALSE。检查由参数构成的日期的合法性。日期 在以下情况下被认为有效:
? year 的值是从 1 到 32767
? month 的值是从 1 到 12 ? Day 的值在给定的 month 所应该具有的天数范围
之内,闰年已经考虑进去了。&?php var_dump(checkdate(12, 31, 2000)); var_dump(checkdate(2, 29, 2001));
PHP与MySQL的日期格式转换
? MySQL中的日期和时间是以ISO8601标准处理的,
从其中获得时间是相对正常的,但是ISO8601期望 输入的日期首先是年,例如:日应输 入或07-02-26。? 在PHP中想得到MySQL的日期输入格式可用date() 函数获得,注意顺序。如果希望在MySQL端进行 转换,可以用两个函数:DATE_FORMAT()格式化 日期和UNIX_TIMESTAMP()获取UNIX时间戳。? SELECT DATE_FORMAT( date_column,’%m %d %Y’) FROM ? SELECT UNIX_TIMESTAMP( date_column) FROM
在PHP中计算日期
? 根据某人的生日计算年龄:
&?php // set date for calculation $day = 18; $month = 9; $year = 1972; // remember you need bday as day month and year $bdayunix = mktime ('', '', '', $month, $day, $year); // get ts for then $nowunix = time(); // get unix ts for today $ageunix = $nowunix - $ // work out the difference $age = floor($ageunix / (365 * 24 * 60 * 60)); // convert from
seconds to years
echo &Age is $age&; ?&
在MySQL中计算日期
? 使用MySQL来计算某人基于生日的年龄:
&?php // set date for calculation $day = 18; $month = 9; $year = 1972; // format birthday as an ISO 8601 date $bdayISO = date(&c&, mktime ('', '', '', $month, $day, $year)); // use mysql query to calculate an age in days $db = mysqli_connect('localhost', 'user', 'pass'); $res = mysqli_query($db, &select datediff(now(), '$bdayISO')&); $age = mysqli_fetch_array($res); // convert age in days to age in years (approximately) echo &Age is &.floor($age[0]/365.25); ?&
+申请认证第一篇:php随机数第8章 PHP中的数据处理
? 数据的处理是在进行实际编程过程中,都会遇见 的重要内容。如对数值的操作、对字符串的操作、 对数组的操作等等。本章就来介绍PHP中的数据处 理。通过本章的学习,读者能够熟练掌握PHP中常 用的各种数据处理的方法与技巧。并为进行大型 程序的开发打下坚实的基础。
8.1 数值的处理
? 数值的处理就是对编程过程中产生的各种数值型 变量(包括整型变量与浮点数变量两种)的处理。所有这些数学运算、数值的操作在PHP的数据处理 中占有相当大的比重。本节就来介绍PHP中的数值 处理即PHP中常用的数学函数。
8.1.1 求绝对值
? 求绝对值运算是数学运算中最为常见的一类运算。PHP库函数中内 置了求绝对值函数abs(),使用该函数可以轻松实现求一个数的绝 对值。该函数的语法格式如以下代码所示。abs(mixed var); 以上代码所示该函数的参数var为mixed型,即既可以是integer (整型数)也可以是float(浮点数)。如果参数是整型数,则函 数的返回值也为整型数;如果参数为浮点数则返回值也是浮点数。
8.1.2 取整运算
? 取整运算可以获取指定非整数数值的整数部分。在进行PHP进行实际编程的过程中,会遇到一些非 整数,如果过程要求只有整数才能参与运算(如 计算数量),此时就需要把该类非整数转换为整 数。PHP中提供了三种取整的方法,分别是:进一 法取整、舍去法取整、四舍五入取整。3种方法分 别对应3个PHP数值处理函数,如表所示。
8.1.3 三角运算
? 三角运算可以计算角度或弧度的各项三角函数值。如果运算值是角度,应 该首先将角度值转换为弧度值。这时,需要使用转换函数deg2rad()。其 语法如下所示。float deg2rad(float number ) 该函数的参数为表示角度的浮点数,函数将返回与该角度值对应的弧度值。三角函数通常包括:求一个角的正弦值、余弦值、正切值、余切值以及这 些函数的反函数等等。而PHP中的三角函数的表述方法与此类函数数学的 表述方法一模一样。常用的三角函数如表所示。
8.1.4 最值的使用
? 使用PHP中的最值函数,可以非常方便地计算出组数中的最大或者 最小值。与传统的编程工具(如C语言)的冒泡排序法相比,PHP 中的最值函数方法既简单又不容易出错。PHP中包含以下两个最值 函数:求最大值函数max()、求最小值函数min()。1.max函数 max()函数返回指定参数中的最大值。该函数有两种调用方式,语 法格式分别如下所示。mixed max(number arg1,number arg2) mixed max(array numbers[,array...]) 2.min函数 min()函数返回指定参数中的最小值函数,该函数有两种调用方式, 语法格式如下代码所示。mixed min(number arg1,number arg2) mixed min(array numbers[,array...])
? ? ? ? ? ? ? ?
8.1.5 生成随机数
? 随机数在进行网络应用程序开发过程中有着广泛的应用。如常见的向服务端后台提交内容时的随机验证码,根据一 定规则生成的随机文件名等等。而PHP对随机数也有很好的 支持。本节就来学习PHP中的随机数函数的应用。? 在PHP中要使用随机数,最主要的要用到一个函数:rand。该函数的使用格式如下? int rand([int min,int max]) ? 该函数将产生一个位于可选参数min与max之间的随机数。由于此二参数为可选参数,所以此二参数可以省略。如果 不带任何参数,函数将返回0到RAND_MAX(系统所支持的最 大值)之间的伪随机数。
8.1.6 判断数据类型
? 在使用PHP进行数据处理时,首要的前提就是要知道数据的类型。只有先 知识了数据的类型,才能对它进行进一步的操作。PHP中有一类专门的函 数用于判断变量的数据类型。具体内容请参看表:PHP中的数据类型判断 函数。
8.1.7 进制转换函数
? 人们通常使用习惯的进制为十进制,而计算机的数据表达 方式通常为二进制、十六进制或者八进制等。这就需要在 特殊的使用场合对数据的进制进行相应的转换。如把二进 制数值转换为十进制数值、把十进制数值转换为十六进制 数值等等。PHP中也提供了一类专门用于进制转换的函数。PHP中常用的进制转换函数如表所示。
8.1.8 其他数值处理函数
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 除了以上介绍的几种常用数值处理函数之外,PHP中还有以下数值处理函数。使用这些函数可以对 数值进行对应的数学计算,下面开始作详细介绍。1.计算指数函数exp 指数函数的语法格式如以下代码所示。float exp(float arg) 2.计算直角三角形的斜边长度:hypot 求直角三角形斜边长度函数hypot的语法格式如下所示。float hypot(float x,float y) 3.判断是否为有限值:is_finite 有限值函数使用格式如下所示。bool is_finite(float val) 4.判断是否为无限值:is_infinite 无限值函数的使用格式如下所示。bool is_infinite(float val) 5.判断是否为合法数值:is_nan 合法值函数使用格式如以下代码所示。bool is_nan(float val) 6.得到圆周率值:pi 求圆周率值函数的使用格式如以下代码所示。float pi()
8.2 字符串的处理
? 字符串也是程序运行中经常要使用的最重要的内 容之一。特别是在网络应用程序中,有相当多的 内容也都要与字符串发生联系。如:用户提交的 内容为字符串、从库中查询出的结果为字符串、 小偷程序从网上搜集的其他网站内容也为字符串 等。而如何对字符串进行有效的操作,成为字符 串处理的关键。本节就来介绍PHP中的常用字符串 处理函数。
8.2.1 字符串的输出
? PHP中为字符串的输出提供了多种方法,具体如表 所示。
8.2.2 字符串的长度
? 在进行字符串处理时,获取字符串的长度是相当 有必要的。在其他编程语言中,字符串的长度通 常是作为字符串的一个属性出现(如JavaScript)。而在PHP中,则提供了专门的获取 字符串长度的函数。本节就来介绍PHP中的字符串 长度的获取。? 在PHP中,使用函数:strlen()来获取字符串长度。该函数接受一个字符串变量作为参数,函数将返 回一个整型数,该整型数表示需要获取字符串的 长度。
8.2.3 字符串的截取
? 字符串的截取也是进行字符串操作的一个重要内容。如对 一个字符串截取其中一部分,或者截取一个字符串从第几 个字符到第几个字符之间的内容等。PHP中也提供了字符串 截取的支持。本小节来介绍PHP中的字符串截取函数。? 在PHP中使用函数substr()来实现字符串的截取操作。该函 数使用样式如下? string substr(string string,int start[,int length]) ? 其中参数string为指定欲截取的字符串,参数start为开始 截取的位置,可选参数length为指定截取的长度,如果省 略该参数,则截取到原始串的末尾。如果start为负数,就 从字符串尾端算起。若可选参数length存在,但为负数, 则表示取到倒数第length个字符。
8.2.4 字符串的替换
? 对字符串中内容的替换操作,也是字符串操作中 的一个重要的内容。这种情况常用于修改字符串 中指定和内容等。在PHP中可以通过函数strtr() 与函数substrreplace()来实现对字符串的替换操 作。? 1.转换字符串中的某些字符 ? string strtr(string str,string from,string to) ? string strtr(string str,array replace_pairs) ? 2.替换字符串中的一部分为另一字符串 ? mixed substr_replace(mixed string,string replacement,int start[,int length])
8.2.5 字符串的分割
? 字符串的分割在字符串的操作中有着重要的地位,有很多 Web应用中需要对字符串内容进行分割。比较常见的有以文 本作为载体的留言簿程序就是这样。而PHP中也同样提供了 对字符串分割操作的支持。? 在PHP中要想执行字符串的分割操作,可以使用函数 explode(),该函数的使用格式如下所示。? array explode(string separator,string string[,int limit]) ? 其中参数separator为欲执行分割操作的字符串中的一个子 串(即分割标记);参数string为欲执行分割操作的目标 字符串;可选参数limit为最多返回数组元素的数量。执行 此函数将返回一个数组,数组的每一个元素为原始串的子 串。
8.2.6 字符串的比较
? 数值可以比较大小,同样字符串也可以比较其大 小。两个数值变量之间比较大小,仅通过简单的 比较运算符就可以就行。而字符串之间的比较则 要通过专门的函数来进行。PHP中就提供了字符串 比较大小的函数:strcasecmp()。? 1.strcasecmp:不区分大小写比较 ? int strcasecmp(string str1,string str2) ? 2.strnatcmp:区分大小写比较 ? int strnatcmp(string str1,string str2)
8.2.7 字符串的大小写
? 在对字符串特别是英文字符串进行操作时,字符的大小写通常是 一个需要重点解决的问题。如:把字符串转换为大写或者小写、 把字符串中的首字符转换为大写等等。而PHP中也为此类操作提供 了一组专门的函数。本小节就来介绍一下PHP中的与字符串的大小 写转换相关的函数。PHP中提供了以下几个函数来对字符串的大小写进行操作strtolower:将字符串中的所有字符全部转换为小写。string strtolower(string string) strtoupper:将字符串中的所有字符全部转换为大写。string strtoupper(string string) ucfirst:将字符串中的第一个字母转换为大写。string ucfirst(string string) ucwords:将字符串中的每一个单词的第一个字母转换为大写。string ucwords(string string)
? ? ? ? ? ? ? ? ?
8.2.8 字符与ASCII码
? ASCII码(American Standard Code for Information Interchange,美国标准信息交换码)是目前计算机中用得 最广泛的字符集及其编码。它是由美国国家标准局(ANSI) 制定的,已被国际标准化组织(ISO)定为国际标准,称为 ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码 和8位码两种形式。? 而在PHP作为一种高级编程语言,也支持字符与其对应的 ASCII码之间的各种操作。本小节就来介绍PHP中的字符与 ASCII码相关的函数。? 1.chr将指定的序数转化为相应的ASCII字符 ? string chr(int ascii) ? 2.ord返回一个字符对应的ASCII码 ? int ord(string str1)
8.2.9 其他字符串处理函数
? ? ? ? ? ? ? ? ? ? ? ? ? 除了以上介绍的几种常用的字符串处理函数之外,PHP中还有以下字符串 处理函数。使用该类函数可以对字符串进行其他种类的操作。下面分别为 读者作介绍。1.join:将数组转化为字符串 string join(string glue,array pieces) 2.htmlspecialchars:转换字符串中的特殊符号为HTML标记 string htmlspecialchars(string string[,int quote_style[,string charset]]) 3.strrev颠倒字符串 string strrev(string string) 4.substr_count:计算一个字符串在另一个字符串中出现的次数 int substr_count(string haystack,string needle[,int offset[,int length]]) 5.strripos:查找字符在字符串中首次出现的位置 int stripos(string haystack, string needle[,int offset]) 6.md5:对一个字符串进行MD5加密 string md5(string str[,bool raw_output])
8.3 数组的处理
? 作为一种重要的数据类型,数组的处理在PHP的数 据处理中也占有相当重要的比重。由于数组可以 作为多种数据的载体,所以能否快速、高效的对 数组进行处理,是能否进行高效的PHP网络编程的 一个重要条件。本节就来向读者介绍在PHP中如何 对数组进行各种种样的处理。
8.3.1 建立数组
? 在本书第4章介绍数组变量一节中已经介绍过:数组是一种 特殊的变量,而数组的建立通常有两种方法。一种是直接 给数组的元素赋值,如以下代码所示。? $array[0]=0; ? $array[1]=1; ? …… ? $array[n]=n; ? 而另一种方法则是通过函数array()来一次给所有数组成员 赋值。该函数的使用格式如下? array array([mixed...]) ? 其中参数可以用=&运算符给出索引,以键值对的形式出现。数值键值可以省略,但字符键值则不能省略。关于数组的 建立,在第4章相关内容中已经介绍过,这里就不再赘述。
8.3.2 数组长度
? 在使用数组时,获取数组的长度信息是进行数组 处理的一个重要前提。在PHP中可以通过函数count()来获取数组的长度。count()函数的使用 格式如下? int count(array array[,int mode]) ? 该函数将返回参数array所指代的数组的元素个数。可选参数mode自PHP4.2.0有效,如果将该值设为1, 函数将递归地对数组进行计数,这对计算多维数 组的长度尤其有效。该参数默认值为0。? 对于空数组,函数count()将返回0。
8.3.3 数组的键值
? 数组的键即数组的下标,是指在中括号中对一个 数组元素的引用;数组的值则是指某一个数组元 素的值。通常情况下,数组的键与值都是成对出 现。PHP既支持数字键名也支持字符键名。本节来 介绍用于数组的键值对操作的数组函数。? array array_keys(array input[,mixed search_value[,bool strict]]) ? 该函数将返回指定数组的所有键名,参数input为 指定需要获取键名的数组;可选参数 search_value为指定的键名,如果指定该值,则 只返回该值的键名;可选参数strict进行全等 (===即值与类型都相等)比较。
8.3.4 数组的排序
? 数组是一组变量的集合,所以对数组中所有元素的排序就成为数 组操作中一项必不可少的内容。通常的编程工具对数组进行排序 都是采用手工的方法。不管是直接插入排序、希儿排序、冒泡排 序、快速排序、直接选择排序等等排序法都需要手动编程来实现。而PHP中则为数组的排序专门提供了一组函数。合理使用这些排序 函数可以使用户在最短时间内完成对数组排序的操作。PHP中的数 组排序函数如表所示。
8.3.5 移动数组指针
? 数组是变量的集合,每一个数组中都有很多的元 素。数组指针是指向当前数组元素的标记。当一 个数组被建立时,数组指针指向数组的第一个元 素。而有时需要对数组的指针进行移动操作,这 时就需要使用到移动数组指针的一类函数。PHP中 的移动数组指针函数如表所示。
8.3.6 移除重复的值
? 实际编程过程中可能会遇到各种各样的问题。对 数组操作也是一样,客户的要求千差万别。所以 移除数组中重复的值也是可能遇到的数组操作之 一。在PHP中要移去数组中重复的值,只需要通过 使用系统函数array_unique()即可完成要求。? array array_unique(array array)
8.3.7 合并数组
? 将两个或者两个以上的数组合并为一个数组也是 数组操作中可能遇到的问题之一。PHP中可以通过 函数array_merge()来实现这一操作。? array array_merge(array array1[,array array2[,array...]])
8.3.8 检查数组中是否存在某个值
? 在对数组进行处理时,判断某个值是否存在于数组中是很有必要的。如将 一组用户作为一个数组,某一个用户作为数组元素,就可以通过对数组的 此类操作来判断某个用户是否存在于某个群中。在PHP中可以通过函数in_array()来实现该要求。该函数的使用格式如下 所示。bool in_array(mixed needle,array haystack[,bool strict]) 该函数将对参数组haystack中是否存在值needle进行判断,并根据结果返 回布尔值。如果有该值,函数返回True,反之则返回False。其中可选参 数strict如果设置为True,则函数还会对参数的类型进行判断,该值默认 为False。
8.3.9 检查数组中的值出现的次数
? 上一节介绍了如何判断数组中是否存在某个值,这一节再来介绍下如何判 断数组中的值出现的次数。对数组中的值出现次数进行判断,是进行数组 处理过程中有可能遇到的重要的数组操作之一。对于通常的编程语言,需 要对数组进行遍历,然后给每个值计数,统计出每个值的出现次数。而在 PHP中所有这些操作都可以通过调用一个内部函数来完成。array array_count_values(array input) 该函数将会统计给定数组中的所有值出现的次数。函数将会返回一个数组, 新数组的键为原数组中的值,而新数组的值则为原数组值出现的次数。
8.4 本章小结
? 本章向读者介绍了PHP中最重要的三种数据类型数值型、字符型、数组型的操作。这些数据类型 的处理是构成所有PHP程序最重要的基石。所以本 章的内容对于读者能否学好PHP将起到至关重要的 作用。? 本章详细介绍了PHP中常见的对数值、字符以及数 组的操作,合理利用其中介绍的系统函数可以有 效提高工作效率。虽然本章内容不少,但只是PHP 中所有数据操作中的有代表性的一部分。至于更 多的数据处理相关内容,读者可以在实际工作中 作合实际,参考下相关的手册,了解更多与数据 处理相关的内容。
《》出自:链接地址:http://www.13fen.com/article/j8Cl4KXH6XMQs9kd.html
www.13fen.com
《php随机数》

我要回帖

更多关于 php 调用静态变量 的文章

 

随机推荐