开发者学堂课程【PHP 基础入门课程(下):常用系统函数】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/710/detail/12646
常用系统函数
内容介绍:
一、常见输出类
二、时间日期类
三、数学类
四、字符串类
五、数组函数
一、常见输出类
帮助程序员进行数据输出或者调试数据(除 echo 外多为调试)
1、echo:一种语法结构,不是函数(它是一个语言结构),因此不一定要使用小括号来明确参数
注意:void 代表空,在函数里面函数一定有返回值。所以,当它没有返回值的时候在 PHP 里它一定不是一个函数,而是一个语言结构。因此我们不一定要使用小括号来指明参数。
2、print_r:输出变量的结构,方便查看
3、var_dump:也是一种语法结构,详细打印变量的结构和数据
4、exit/die:输出消息并终止脚本执行(有的时候如果我们继续让系统执行,系统可能会报一些更深的错误,所以导致我们的代码检查不到结果.因此通常我们在输出做调试是会在后面加一个 die 让代码不要往后面执行了,以防继续执行扰乱判定)
二、时间日期类
帮助程序员进行时间操作管理
1、time:获取当前时间的时间戳(从格林威治时间1970年1月1日0点0分0秒开始到当前为止所有时间的秒数)
2、date:按照指定格式输出时间,可以是当前时间也可以是指定时间戳(可以以任意形式输出)
例如:
echo_’<pre>’;
var_dump(date(‘Y-m-d’或ymd)10);
输入 localhost/49sys_function.php,
得到结果为:string(10) “2019-04-21”int(10)
但由于当前时区有问题所以时间不对,它可以输出对应的一个格式,有什么格式它就是什么格式。
比如:var_dump(date(‘Y年m月d日’10));同样的.它可以做到结果为:string(17) “1970年01月01日”
(我们发现“ymd”被解析了,但“年月日”没有被解析,这是它的特
殊的一个地方,你可以在这个格式中写很多东西,但它只会解释这些它认识的关键字,其他的它都不解析.那么这样的话有了这个 date 我们可以把时间以任意格式输出)
3、strtotime:将任何英文文本日期时间描述转换成时间戳
通过以下案例表明,英文表现时间它都可以
例如:var_dump(strtotime(“10 September 2000”));对应结果string(17) “1970年01月01日”int(968544000)
变成了一个时间戳
4、microtime:获取时间戳和微秒数(精度高)
例如:var_dump(microtime(TURE),microtime(FALSE)); 得到结果如图.会发现第一个是浮点数,第二个则更精确,精确到了微秒.因此,如果想要判定程序执行了多长时间,可以在之前先给一个时间,在运行代码时再给一个时间来判定花了多少时间以及效率和能否优化。
三、数学类
帮助程序员进行数学操作
1、max:获取多个数中最大的(可以是数组)
2、min:获取多个数中最小的(可以是数组)
3、floor:舍去法取整(向下取整),获取不大于当前数值的最大整数
例如:1.1和1.9都取1,就是小于当前数值的最大整数
4、ceil:进一取整(向上取整),获取不小于指定数值的最小整数
例如:1.1和1.9都取2,就是大于指定数值的最小整数
5、mt_rand:获取指定区间或者0到最大数之间的一个随机整数(闭
6、round:根据指定的小数位进行四舍五入
四、字符串类
帮助程序员对字符串进行基本操作
1、addslashes:对 ASCLL 中的特殊字符进行转义(
会在前面加一个“/”),通常对用户输入的内容进行特殊处理(保证数据安全,防止 SOL 注入)
2.htmlsmpecialchars:将 HTML 特殊符号转换成实体
(< ====> &\lt;)
3、htmlspecialchars_decode:将实体符号转换成普通字符
(与上一项相反)
4、chr:将 ASCLL 对应的数值转换成对应的符号
例如:var_dump(chr(65));会得到string(1) “A”
5、ord:将 ASCLL 字符转换成对应的数值(与上一项相反)
6、explode:将字符串按照指定的符号分隔,得到一个数组
7、implode:将一个数组按照指定的符号连接成一个字符串
(与上一项相反)
8、md5:使用 md5算法对数据进行加密
(是一种算法,所有的 md5通用)
9、str_repeat:将字符串重复指定次数
10、str__replace:字符串替换
11、str_shuffle:随机打乱一个字符串
12、str_split:按照指定长度将数组分割,返回数组
(例如 ABCDEFG,按两个字节长度分割 AB CD EF G 得到的同样是一个数组)
13、strip_tags:去除 HTML 和 PHP 标记
(为了安全)
14、strlen:获取字符串的长度
(字节长度)(mb_strlen 字符长度,字符一个中文就是一个长度,而字节一个中文要根据它的字符集)
15、stripos/strpos:查找字符串中首次出现目标字符串的位置
16、substr:从字符串中截取指定位置和长度的子字符串
17、trim:去除字符串两边的空格
(默认是空格,也可以是其他字符,字符串两边都可以去除)
18、ucfirst:将字符串首字母大写
19、strtolower:将所有字母小写
20、strtoupper:将所有字母大写
21、strstr:获取字符串中某个字符首次出现到最后的字符串(
例如 ABCDEFG,要取其中 C 出现的位置,它会取 C 到 G,首次出现。)
五、数组函数
帮助程序员对数据进行操作
1、array_key_exists:判断下标是否在数组中存在(以下标的方式)
2、array_keys:获取数组全部下标,或某个确定值的下标
3、array_merge:合并数组元素
(相同字符串下标元素是覆盖)(如果下标都是数字,前后元素不会覆盖)
合并有一定的逻辑关系,是将后面与前面合并返回,如果前面的下标都是数字,则后面的元素与前面的不会覆盖
4、array_pop:从数组最后弹出一个元素(原数组元素减少)
5、array_push:从数组最后加入一个元素(原数组元素增加)
6、array_unshift:从数组最前面加入一个元素(原数组元素增加)
7、array_shift:从数组最前面弹出一个元素(原数组元素减少)
例如下图,以上四项都有一个原数组的概念
8、shufle:将原始数组打乱
9、in_array:判断元素是否在数组中存在
10、range:生成一个规则数值数组
例如:var_dump(range(1,10);rang(‘a’,‘z’));
11、current:获取当前数组指针所在位置的值
12.next:将数组元素指针向后移动一位,并获取新元素的值
(下次使用是将时另外一个)
13、prev:与 next 相反,向前移动
14、end:指针移动到最后一个元素,并获取元素值
15、reset:重置数组指针
(回到第一个元素)
16、list:语法结构,从数组中获取数据,并且将数据赋值给变量
(list 从数组取元素的时候是从0开始取,按顺序增加,取决于 list 中有多少变量)
$arr = [1,2,3,4];
List($a,$b,$c) = $arr;
Var_dump($a,$b,$c);
运行结果。list 是一种快速的从数组里取出元素,放在变量里的一种结果。
将$arr = [1,2,3,4];改成$arr = [1,5 =>2,3,4];
运行结果。显示报错,第一个拿到了,第二个拿不到,因为 list 从数组取元素的时候是从0开始取,按顺序增加,取决于 list 中有多少变量
17.小结
1)系统函数很多:不需要死记硬背,了解功能,掌握 API 查找使用
2)常见的系统函数其实就那么多,如果不常见的建议使用 API 查找(百度)












