函数
1.函数的定义与调用
函数:封装一段用于完成特定功能的代码。
通俗理解函数:可以完成某个工作的代码块,就像小朋友搭房子用的积木一样,可以反复使用,在使用的时候,拿来即用,而不用考虑它的内部构成。
函数分类:①内置函数(字符串操作函数、数组操作函数)②自定义函数
函数的定义由以下4部分组成:
关键字function
函数名functionName
参数 函数体
function:
在声明函数时必须使用的关键字 函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写
[参数1,参数2…]:
外界传递给函数的值,它是可选的,多个参数之间使用逗号“,”分隔。 函数体:函数定义的主体,专门用于实现特定功能的代码段。
返回值:
需要使用return关键字将需要返回的数据传递给调用者。
2.参数设置
3.变量作用域
思考:变量在定义后就可以在函数中使用嘛?
答案:默认情况下,函数中可以,函数外不可以。
解析:变量只有在其作用范围内才可以被使用,这个作用范围称为变量的作用域。
在函数中定义的变量称为局部变量
在函数外定义的变量称为全局变量
思考:那么如何在函数中使用全局变量呢?
答案:参数传递,global关键字和超全局变量$GLOBALS。
函数的嵌套调用
1.函数的嵌套
函数的嵌套调用:指的是在调用一个函数的过程中,调用另外一个函数,这种在函数内调用其他函数的方式称为嵌套调用。
2.递归调用
递归调用:是函数嵌套调用中一种特殊的调用。它指的是一个函数在其函数体内调用自身的过程,这种函数成为递归函数。
举例:求n的阶乘,计算公式为1×2×3×…×n。如4的阶乘等于1×2×3×4=24。
函数的高级应用
1.静态变量
思考:如何轻松得到一个函数被访问的次数?
答案:一是在函数中使用全局变量记录,缺点是全局变量可随时在函数外被改变,不能准确的记录;二是在函数中使用静态变量。
2.可变函数
可变函数:可变变量,它的实现是在一个变量前添加一个“$”符号,就变成了另外一个变量。同理,可变函数的实现就是在一个变量名后添加一对圆括号“()”,让其变成一个函数的形式,然后PHP就寻找与变量值同名的函数,并且尝试执行它。
3.回调函数
回调函数(callback)
:指的就是具有callable类型的函数,一般用作参数的传递。如PHP内置函数call_user_func()可以接受用户自定义的回调函数作为参数。
4.匿名函数
匿名函数:就是没有函数名称的函数,也称作闭包函数,经常用作回调函数参数的值。对于临时定义的函数,使用匿名函数无需考虑函数命名冲突的问题。
匿名函数中使用外部的变量,需要通过use关键字实现。use关键字后圆括号“()”中的内容即为要使用的外部变量列表,多个变量之间使用英文逗号“,”分隔即可。
此之外,匿名函数还可以作为函数的参数传递,实现回调函数。
内置函数
1.字符串函数
字符串函数是PHP用来操作字符串的内置函数,在实际开发中有着非常重要的作用
截取给定路径中的字符串
substr()函数的第3个参数表示截取的长度,该长度的设置具体有以下4种情况。
省略第3个参数时,将返回从指定位置到字符串结尾的子字符串。
第3个参数为正数,返回的字符串将从指定位置开始,最多包含指定长度的字符,这取决于待截取字符串的长度。
第3个参数为负数,返回的字符串中在结尾处将有个指定长度的字符被省略。
第3个参数为0、false或null,将返回一个空字符串。
替换指定位数的字符
str_repeat()函数用于对“*”字符重复$len次。substr_replace()函数用于对字符串tel中第3个位置开始后的tel中第3个位置开始后的tel中第3个位置开始后的len长度的字符使用$replace进行替换
过滤字符串中的空白字符
程序开发中,去除字符串中的空白字符有时是必不可少的。例如,去除用户注册邮箱中首尾两端的空白字符。这时可以使用PHP提供的trim()函数,去除字符串中首尾两端的空白字符。
字符串的比较
字符串的比较:一种比较运算符“”和“=”,另一种函数strcmp()
区别:函数与比较运算符在使用时的区别是,字符串相等时前者的比较结果为0,后者的比较结果为true(非0)。因此读者在使用时需要注意不同方式的返回结果。
获取字符串的长度
strlen()函数在获取中文字符时,一个汉字占了3个字符,一个英文字符占1个字符。但是对于网站开发来说,这样计算的方式比较麻烦,也没办法区分用户输入的内容是否是汉字。
2.数字函数
为了方便开发人员处理程序中的数学运算,PHP内置了一系列的数学函数,用于获取最大值、最小值、生成随机数等常见的数学运算。
ceil()函数是对浮点数5.2进行向上取整,
floor()函数是对浮点数进行向下取整,
rand()函数的参数表示随机数的范围,第1个参数表示最小值,第2参数表示最大值。
3.时间日期函数
在使用PHP开发Web应用程序时,经常会涉及日期和时间管理。
例如倒计时、用户登录时间、新闻发布时间、购买商品时下订单的时间等。
为此,PHP提供了内置的日期和时间处理函数,满足开发中的各种需求。
时间戳
概念:Unix时间戳(Unix timestamp)定义了从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,以32位二进制数表示。
Unix纪元:1970年01月01日零点也叫作Unix纪元。
time()函数用于获取当前时间的Unix时间戳,
mktime()和strtotime()函数可将给定的日期时间转换成Unix时间戳,前者的参数分别表示“时分秒月日年”,后者可以是任意时间的字符串。
函数microtime()用于获取当前Unix时间戳和微秒数,不设置参数时,返回值的形式前面一段数字表示微妙数,后面一段数字表示秒数;设置参数时,小数点前表示秒数,小数点后表示微秒数。
格式化时间戳
为什么要格式化时间戳?
答
:对于用户来说,时间戳的直接输出,会让其看到一个毫无意义的整型数值。为了将时间戳表示的时间以友好的形式显示出来,可以对时间戳进行格式化。
date()函数第1个参数表示格式化日期时间的样式
date()函数第2个参数表示待格式化的时间戳,省略时表示格式化当前时间戳