字符串函数,时间函数,数学函数,数组

字符串函数

strlen  获取字符串的长度,这里的长度是指该字符串的字节的长度!

substr  从指定字符串中的指定位置开始,截取指定长度的字符!sub在这里是截取的意思,substr就是字符串截取函数

需要三个参数:

1, 指定的字符串

2, 截取起始位置(以0开始)

3, 截取的长度

strtolower strtoupper  把字符串全部转换为小写|大写!  仅针对英文有效,也针对汉字中的英文有效!

strrev  把字符串反转! 

strpos  从左往右查找并返回字符串中某个字符的起始位置!

strrpos  从左往右最后一次出现该字符的位置!

strchr  从左往右截取指定位置(指定的字符的位置)开始以后全部的字符串!

strrchr  从右往左截取指定位置(指定的字符的位置)开始以后全部的字符串!

trims  tring trim ( string $str [, string $charlist = " x0B" ] )

此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:

  • " " (ASCII 32 (0x20)),普通空格符。
  • " " (ASCII 9 (0x09)),制表符。
  • " " (ASCII 10 (0x0A)),换行符。
  • " " (ASCII 13 (0x0D)),回车符。
  • "" (ASCII 0 (0x00)),空字节符。
  • "x0B" (ASCII 11 (0x0B)),垂直制表符

有时候,用户在提交表单的时候(尤其是在注册用户名和写密码的时候),可能不经意间在字符串的前面或后面多敲了一些空格,为了增加客户的体验度,我们需要手动的将这些空格等特殊字符去除掉!这个功能就是由trim函数来实现的!

str_replace

字符串替换函数,有三个参数:

第一个参数是替换什么字符串

第二个参数是替换成什么字符串

第三个参数是在哪个字符串中进行替换

str_repeat

有两个参数:

第一个是需要重复的字符串

第二个参数是重复的次数

时间函数

time  时间戳,格林威治197011日零时起,到现在的秒数!

date  使用时间格式占位符将指定时间戳格式化为对应格式的形式!

时间格式占位符有很多,但是我们只需要记忆常见的6个:

年:Y

月:m

日:d

时:H

分:i

秒:s

星期:l (L的小写)

基本的语法形式如下:

date(“带有格式占位符的字符串,时间戳)

其中第二个参数(时间戳)可以省略,缺省值就是当前时间戳!

例如:

输出结果:

strtotime  将一个英文格式下的时间字符串,转换为一个时间戳

例如:得到2000-1-1的时间戳

输出结果:

microtime  得到一个微妙的时间戳字符串(字符串型),或加上一个参数true(默认值为false)之后得到一个微妙的时间(浮点型)

数学函数

abs  取绝对值

floor  向下取整,获得一个比当前数值小的最大整数!

ceil    向上取整

round  四舍五入

应该有两个参数:

第一个参数是一个数值

第二个参数是精确的小数的位数,缺省值为0

rand  |  mt_rand  都是获得一个指定区间的随机整数,只是mt_rand的效率比rand要高!

注意:

这里的区间是闭区间!(1,100)是开区间,[1,100]是闭区间!

pow  求一个数的指数幂的值

sqrt  求平方根!注意参数不能为负数

max | min    求一组参数中的最大值或最小值!

is_nan   如果 val 不是一个数字(not a number)返回 TRUE ,否则返回 FALSE 

数组

数组是一种复合类型,存放在内存中的堆区,里面可以保存多个不同类型的数据,而且长度默认的是没有限制! 

数组的组成  数组,是由元素(element)组成的,每个元素都是数组的中的一个成员!

元素的名字,叫作下标(index),也叫作键(key)。元素的值,叫作值(value)。所以,数组中的一个元素也叫作一个“键值对”(key/value

数组的分类  根据不同的划分的标准,可以有不同的类别:

按照键与值之间的对应关系

索引数组  数组元素的键,不用于表示其值的含义,仅仅表示该元素在整个数组内的位置!

1, 典型的,当一个数组的下标全部省略的时候,系统会自动的给该数组的每一个元素都加上一个下标,从0开始,依次递增,表示该数组的索引值!

2,当省略掉其中部分元素的下标的时候,系统也会自动的给这些元素分配下标,其索引值是当前(也就是前面)已经存在的最大整型的下标加1,如果没有就从0开始

3,如果数组中出现了相同的下标,后面的会覆盖前面的,要注意不要造成了元素的“丢失”

4,默认的,数组元素的下标只能是两种类型,也就是整型和字符串型,虽然语法上还是允许写其他的类型,但是系统会自动的将其转换为整型或字符串型

关联数组  就是指数组元素的键和值之间存在着一一对应的关系,也就是键表示其值的含义!

1, 典型的,就是以字符串为下标的时候,该数组一般都是关联数组,因为此时这里的字符串可以表示一定的含义

2,也并不是说,整型下标的数组就一定是索引数组,也有可能是关联数组所以,关键是看数组的键与值之间是否存在着一定的关系!

3,一个数组中的下标既可以有整型也可以有字符串型,这种数组一般也称之为“混合数组”

按照数组的维度

一维数组  简单来说,如果一个数组的所有的元素都不是一个数组,就是一维数组!

多维数组  超过一维的都可以叫作多维数组,就是指在一个数组中,部分或全部元素的值恰好又是一个数组!其实,严格意义上讲,PHP中并不存在传统意义上的多维数组,而是其中的某些元素的值恰好又是一个数组而已!

注意:

前面的关于数组的所有的分类,都知识逻辑上的分类,都是由于数组的元素键和元素的值的类型不同而已,从语法上来看,所有的数组的本质都是一样的:都是键值对!

foreach遍历  foreach是专业遍历数组和对象的一个语句,所谓的数组的遍历,就是依次获得并处理数组中的每一个元素!

基本语法 :foreach (数组名 as 键变量 => 值变量){循环体}

另外,如果在遍历数组的时候,其中的键变量没有什么特殊的作用(比如索引数组),此时在遍历数组的时候可以省略掉键变量,此时,语法形式就变成了

foreach (数组名 as 值变量){循环体}

例如:

注意foreach遍历的不是原数组本身,而是遍历的是对原数组的拷贝!所以也造成了以下的几个特点:

1,保存值的变量$value,和原数组之间默认是值传递,也就是说,如果在遍历的时候对$value的值进行修改,不会影响到原数组!

2$value的值与原数组之间也可以是引用传递的关系,就是在遍历数组的时候在$value

的前面加上求地址运算符&即可!

3,仅仅是数组值的变量,才支持引用传递,键变量只能支持值传递!

 foreach流程控制

数组的指针

key    语法是:key(数组名)      作用:获取该数组当前元素的键!

current  语法是:current(数组名)    作用:获取该数组当前元素的值!

next    语法是:next(数组名)      作用:将数组的指针下移一位

reset   语法是:reset(数组名)           作用:重置数组的指针(将数组的指针重新指向第一个元素)

prev   向上移动数组指针,previous(先前的)

end    reset是将数组的指针移动到第一个元素,那么end也是重置指针,不过是重置到最后一个元素!

注意:   如果指针的位置已经非法,就不能在做相对移动了(向上或向下),只能做绝对移动,也就是重置(resetend

while+each+list遍历

each  语法:each(函数名);  作用:同时兼备了keycurrentnext函数的功能,既可以获取到当前元素的值,也能获取到当前元素的键!

注意each的返回值:

1, 返回的是一个数组,而且是一个索引和关联并存的混合数组

2, 在原有数组的当前元素的基础上,重新创建了一个新的数组,其中原数组元素的值和键都是新数组的值,并为其分别创建了索引下标和关联下标

其中索引的:$each[0]代表原数组当前元素的键,$each[1] 代表原数组当前元素的值

其中关联的:$each[‘key’] 代表原数组当前元素的键,$each[‘value’] 代表原数组当前元素的值

例如:

输出结果:

list  也是一个系统函数,它可以利用一个索引数组,一次性的为多个变量赋值!

原文地址:https://www.cnblogs.com/czhd666/p/6084089.html