字符串函数
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 时间戳,格林威治1970年1月1日零时起,到现在的秒数!
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也是重置指针,不过是重置到最后一个元素!
注意: 如果指针的位置已经非法,就不能在做相对移动了(向上或向下),只能做绝对移动,也就是重置(reset或end)
while+each+list遍历
each 语法:each(函数名); 作用:同时兼备了key、current、next函数的功能,既可以获取到当前元素的值,也能获取到当前元素的键!
注意each的返回值:
1, 返回的是一个数组,而且是一个索引和关联并存的混合数组
2, 在原有数组的当前元素的基础上,重新创建了一个新的数组,其中原数组元素的值和键都是新数组的值,并为其分别创建了索引下标和关联下标
其中索引的:$each[0]代表原数组当前元素的键,$each[1] 代表原数组当前元素的值
其中关联的:$each[‘key’] 代表原数组当前元素的键,$each[‘value’] 代表原数组当前元素的值
例如:
输出结果:
list 也是一个系统函数,它可以利用一个索引数组,一次性的为多个变量赋值!