1.函数的理解
函数:封装一段用于完成特定功能的代码
函数分类:①内置函数(字符串操作函数、数组操作函数)②自定义函数
2.函数的定义由以下4部分组成:
- 关键字function
- 函数名functionName
- 参数
- 函数体
3.初始函数一各部分说明
- function:在声明函数时必须使用的关键字
- 函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写
- [参数1, 参数2…]:外界传递给函数的值,它是可选的,多个参数之间使用逗号“,”分隔。
- 函数体:函数定义的主体,专门用于实现特定功能的代码段。
- 返回值:需要使用return关键字将需要返回的数据传递给调用者。
4.内置函数的使用
$str = 'ABcd';
$upper = strtoupper($str); // 调用strtoupper()函数将$str转换成大写
$lower = strtolower($str); // 调用strtolower()函数将$str转换成小写
echo $upper; // 输出结果:ABCD
echo $lower; // 输出结果:abcd
5.自定义函数
<?php // 生成4行8列的表格,并输出
function generate_table($row, $col) echo generate_table(4, 8);
{ // 生成5行10列的表格,并输出
$html = '<table>'; echo generate_table(5, 10);
for ($i = 1; $i <= $row; ++$i) {
$html .= '<tr>';
for ($j = 1; $j <= $col; ++$j) {
$html .= '<td></td>';
}
$html .= '</tr>';
}
return $html.'</table>';
}
6.嵌套调用
举例:班主任老师要计算每个学生语文和数学平均分,其实现思路是首先编写一个函数用于计算学生的语文和数学的总分,
然后再编写一个 函数用于实现学生的平均分。
<?php
function total($IPhone,$Number){
$IPhone=$IPhone*$Number;
return $IPhone;
}
$phone=total(5000,2);
$computer= total(8000,10);
$num=$phone+$computer;
echo $num;
?>
7.可变函数
可变函数:可变变量,它的实现是在一个变量前添加一个“$”符号,就变成了另外一个变量。
同理,可变函数的实现就是在一个变量名后添加一对圆括号“()”,让其变成一个函数的形式,
然后PHP就寻找与变量值同名的函数,并且尝试执行它。
8.回调函数
回调函数(callback):指的就是具有callable类型的函数,一般用作参数的传递。如PHP内
置函数call_user_func()可以接受用户自定义的回调函数作为参数。
9.匿名函数
匿名函数:就是没有函数名称的函数,也称作闭包函数,经常用作回调函数参数的值。对于临
时定义的函数,使用匿名函数无需考虑函数命名冲突的问题。
例:
$sum = function($a, $b) { // 定义匿名函数
return $a + $b;
};
echo $sum(100, 200); // 输出结果:300
除此之外,匿名函数还可以作为函数的参数传递,实现回调函数。
function calculate($a, $b, $func)
{
return $func($a, $b);
}
echo calculate(100, 200, function($a, $b) { // 输出结果:300
return $a + $b;
});
echo calculate(100, 200, function($a, $b) { // 输出结果:20000
return $a * $b;
});
10.字符串函数
substr()函数的第3个参数表示截取的长度,该长度的设置具体有以下4种情况。
省略第3个参数时,将返回从指定位置到字符串结尾的子字符串。
第3个参数为正数,返回的字符串将从指定位置开始,最多包含指定长度的字符,这取决于待截取字符串的长度。
第3个参数为负数,返回的字符串中在结尾处将有个指定长度的字符被省略。
第3个参数为0、false或null,将返回一个空字符串。
替换指定位数的字符,在开发也是很常见的功能。例如,在各种抽奖环节中,为了保证用户的隐私,出现的手机号一般
使用“*”将第4至7位的数字进行覆盖。
$tel = '18810881888'; // 随意输入一串数字作为手机号
$len = 4; // 需要覆盖的手机号长度
$replace = str_repeat('*', $len); // 根据指定长度设置覆盖的字符串
echo substr_replace($tel, $replace, 3, $len); // 输出结果: 188****1888
11.数学函数
ceil()函数是对浮点数5.2进行向上取整,
floor()函数是对浮点数进行向下取整,
rand()函数的参数表示随机数的范围,第1个参数表示最小值,第2参数表示最大值。
例:
echo ceil(5.2); // 输出结果:6
echo floor(7.8); // 输出结果:7
echo rand(1, 20); // 随机输出1到20间的整数
12.时间日期函数
在使用PHP开发Web应用程序时,经常会涉及日期和时间管理。
例如倒计时、用户登录时间、新闻发布时间、购买商品时下订单的时间等。
为此,PHP提供了内置的日期和时间处理函数,满足开发中的各种需求。
时间日期的函数:
函数名称 功能描述
time() 获取当前的Unix时间戳
date() 格式化一个本地时间/日期
mktime() 获取制定日期的Unix时间戳
strotime() 将字符串转化成Unix时间戳
microtime() 获取当前时间戳和微秒数
时间戳的概念:
概念:Unix时间戳(Unix timestamp)定义了从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数
,以32位二进制数表示。
Unix纪元:1970年01月01日零点也叫作Unix纪元。
time()函数用于获取当前时间的Unix时间戳,
mktime()和strtotime()函数可将给定的日期时间转换成Unix时间戳,前者的参数分别表示“时分秒月日年”,后者
可以是任意时间的字符串。
函数microtime()用于获取当前Unix时间戳和微秒数,不设置参数时,返回值的形式前面一段数字表示微妙数,
后面一段数字表示秒数;设置参数时,小数点前表示秒数,小数点后表示微秒数。
例:
echo time(); // 输出结果:1487666317
echo mktime(0, 0, 0, 2, 21, 2017); // 输出结果:1487606400
echo strtotime('2017-2-21'); // 输出结果:1487606400
echo microtime(); // 输出结果:0.04142600 1487666098
echo microtime(true); // 输出结果:1487666098.0414