常用系统函数|学习笔记

简介: 快速学习常用系统函数

开发者学堂课程【PHP 基础入门课程(下)常用系统函数】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/710/detail/12646


常用系统函数


内容介绍:

一、常见输出类

二、时间日期类

三、数学类

四、字符串类

五、数组函数


一、常见输出类

帮助程序员进行数据输出或者调试数据(除 echo 外多为调试)

1、echo:一种语法结构,不是函数(它是一个语言结构),因此不一定要使用小括号来明确参数

image.png

注意:void 代表空,在函数里面函数一定有返回值。所以,当它没有返回值的时候在 PHP 里它一定不是一个函数,而是一个语言结构。因此我们不一定要使用小括号来指明参数。

2、print_r:输出变量的结构,方便查看

3、var_dump:也是一种语法结构,详细打印变量的结构和数据

4、exit/die:输出消息并终止脚本执行(有的时候如果我们继续让系统执行,系统可能会报一些更深的错误,所以导致我们的代码检查不到结果.因此通常我们在输出做调试是会在后面加一个 die 让代码不要往后面执行了,以防继续执行扰乱判定)


二、时间日期类

帮助程序员进行时间操作管理

1、time:获取当前时间的时间戳(从格林威治时间1970年1月1日0点0分0秒开始到当前为止所有时间的秒数)

2、date:按照指定格式输出时间,可以是当前时间也可以是指定时间戳(可以以任意形式输出)

image.png

例如:

image.png

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:将任何英文文本日期时间描述转换成时间戳

image.png

通过以下案例表明,英文表现时间它都可以

image.png

例如:var_dump(strtotime(“10 September 2000”));对应结果string(17) “1970年01月01日”int(968544000)

变成了一个时间戳

4、microtime:获取时间戳和微秒数(精度高)

image.png

例如:var_dump(microtime(TURE),microtime(FALSE)); 得到结果如图.会发现第一个是浮点数,第二个则更精确,精确到了微秒.因此,如果想要判定程序执行了多长时间,可以在之前先给一个时间,在运行代码时再给一个时间来判定花了多少时间以及效率和能否优化。

image.png


三、数学类

帮助程序员进行数学操作

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:判断下标是否在数组中存在(以下标的方式)

image.png

2、array_keys:获取数组全部下标,或某个确定值的下标

3、array_merge:合并数组元素

(相同字符串下标元素是覆盖)(如果下标都是数字,前后元素不会覆盖)

image.png

合并有一定的逻辑关系,是将后面与前面合并返回,如果前面的下标都是数字,则后面的元素与前面的不会覆盖

4、array_pop:从数组最后弹出一个元素(原数组元素减少)

5、array_push:从数组最后加入一个元素(原数组元素增加)

6、array_unshift:从数组最前面加入一个元素(原数组元素增加)

7、array_shift:从数组最前面弹出一个元素(原数组元素减少)

例如下图,以上四项都有一个原数组的概念

image.png

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 中有多少变量)

image.png

$arr = [1,2,3,4];

List($a,$b,$c) = $arr;

Var_dump($a,$b,$c);

运行结果。list 是一种快速的从数组里取出元素,放在变量里的一种结果。

image.png

$arr = [1,2,3,4];改成$arr = [1,5 =>2,3,4];

运行结果。显示报错,第一个拿到了,第二个拿不到,因为 list 从数组取元素的时候是从0开始取,按顺序增加,取决于 list 中有多少变量

image.png

17.小结

1)系统函数很多:不需要死记硬背,了解功能,掌握 API 查找使用

2)常见的系统函数其实就那么多,如果不常见的建议使用 API 查找(百度)

相关文章
|
3月前
|
XML Java 数据库连接
MyBatis的常见配置
MyBatis 常见配置包括数据库连接、类型别名、映射器等核心模块,合理配置可提升开发效率与系统性能。主要内容涵盖核心配置文件结构、关键配置项详解及配置优先级说明。
384 4
|
3月前
|
存储 自然语言处理 Java
软考中级软件设计师专项-程序设计语言篇
本文系统介绍了编程语言基础,涵盖低级与高级语言、编译与解释程序的区别、程序结构、数据类型、函数调用方式、编译过程各阶段(词法、语法、语义分析等)、正规式与有限自动机、上下文无关文法、表达式转换及语法树遍历等内容,并对常见语言特性与杂项知识点进行总结,适用于程序设计与编译原理学习。
363 1
软考中级软件设计师专项-程序设计语言篇
|
11月前
|
并行计算 API 调度
加速大语言模型推理:NVIDIATensorRT-LLM更新
本次分享由NVIDIA亚太区资深总监李曦鹏主讲,聚焦于加速大语言模型推理的挑战与解决方案。内容涵盖大模型推理优化、性能提升策略及KVCash在用户请求处理中的应用。通过TensorRT-LLM的更新,NVIDIA提供了高性能推理引擎和多种优化技术,如KVCache优化、InflightBatching等,大幅提升了大模型的推理效率。此外,还介绍了与魔搭社区的合作,支持超过50个主流模型的一键部署,显著降低了使用门槛和成本。
579 1
|
Web App开发 移动开发 UED
介绍一下HTML5的新技能:多媒体支持
介绍一下HTML5的新技能:多媒体支持
486 2
|
9月前
|
机器学习/深度学习 自然语言处理 小程序
MiniMax开源超长文本处理神器,魔搭社区助力开发者推理部署
Transfermor架构与生俱来的二次计算复杂度,及其所带来的上下文窗口瓶颈,一直为业界所关注。此前,MiniMax开源了MiniMax-01系列模型,采用创新的线性注意力架构,使得模型能够在100万个token长度的上下文窗口上进行预训练;而在推理时,实现了高效处理全球最长400万token的上下文,是目前最长上下文窗口的20倍。
539 0
|
存储 Kubernetes 数据可视化
在k8S中,如何使用EFK实现日志的统 一管理?
在k8S中,如何使用EFK实现日志的统 一管理?
|
Go 开发者
什么是 Golang 包?详解 Go 语言的包系统
【8月更文挑战第31天】
343 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue的外卖平台系统的详细设计和实现
基于SpringBoot+Vue的外卖平台系统的详细设计和实现
358 4
|
Kubernetes 容器
【kubernetes】解决:FATA[0000] name "k8s-haproxy" is already used by ID
【kubernetes】解决:FATA[0000] name "k8s-haproxy" is already used by ID
319 0
|
存储 SQL JavaScript
【数据库原理 • 二】关系数据库理论
数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。 当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。
2367 1