【辅导】Task07 掌握PHP函数编写 主要知识点
1、函数的定义
与java相比,除了在语法上有些区别以外(弱类型),其它没有什么区别。
函数的返回值类型由return语句的表达式确定。
【思考1】如果函数内没有return语句,或者有一条没有表达式的return语句,那么函数的返回值是什么?
【思考2】函数的定义放在什么位置?
(1) 如果与调用函数的语句在一个文件中,放在这个文件中的任意位置都可以,保持结构完整和独立就可以。
(2)如果函数单独放在独立的php文件中,需要在使用函数前使用require或include语句把这个文件包含进来。
require ’functionfile.php’;
【思考3】理解什么是形参,什么是实参?
形参必然是变量,是该函数的局部变量。实参可以是表达式,也可以是变量,但有时必须是变量(当函数参数定义为变量的引用时)。在函数调用时,会进行由实参的数据类型向形参的数据类型转换的过程(即数据类型以形参为准)
2、函数的默认参数
php不支持函数的重载(函数名相同但参数不同)
默认参数,就是当函数调用时,如果不给参数赋值,用程序员定义的默认值代替。(相当于函数重载时,参数的个数不同了)
默认参数,只能自右向左依次定义为默认参数。
3、函数的变长参数
变长参数,就是用数组变量(形参)来接受不确定个数的参数列表(实参)。
变长参数必须是最右边的参数。
...运算符,除了在用于定义变长参数为,还可以用来将数组转换为列表:
$nums = array(10,20,30,40,50);
echo sum(...$nums);
4、函数的引用参数
同c、java一样,调用函数时,形参获得实参的一个拷贝,是独立的存储空间(栈中分配)。不同的是,php中,不管是基本类型(标量类型)还是字符串、数组、类对象,都是拷贝。
要使形参和实参(必须是变量)共用存储空间,参数必须定义为引用
5、可变函数和匿名函数
函数也是一种类型(复合类型callable)。另两种复合类型是array和object。
因此可以将函数名(字符串)赋值给变量,通过变量来调用函数。
如果是给变量赋值或作为另一函数实参时,临时使用的函数,这个临时定义时,可以不给函数起名字,称为匿名函数。
6、变量的作用域
在程序中(函数外)定义的变量,虽然是全局变量,但函数内部还不能使用,必须先用global关键字声明。如$int1。或者使用$globals数组
也可以在函数内部定义全局变量。如$int2。
函数内定义的静态变量(static),意见同c、java一样,初始化值赋值后,再次调用该函数时不再初始化,保持上一次调用时该变量的值。
7、文件包含
一个php文件中,要引入另一个php文件的代码,可以用下面语句中的一个来将另一个php文件包含进来。所以,我们常将函数库或类代码放在独立的php文件中,需要的时候包含进来。
8、常用数学函数
请注意熟悉如round,ceil,floor等取整函数,max,min等统计函数,进制转换函数,sin,cos,exp等数值计算函数,m_pi,m_e等预定义常量的使用
php 5 math函数请参阅:
9、常用日期函数
php没有日期/时间函数,使用unix时间戳(1970-1-1 00:00:00以来的秒数)来记录时间。所以使用整数来表示时间。
要正确设置php的时区。
$time0 = 1583889120;
$time1 = mktime(9,30,0,3,11,2020);
$time2 = time()+24*60*60;
$time3 = strtotime("+1 days",time());
输出日期时间时,用date函数进行格式化。常用y-m-d h:i:s
echo date("y-m-d h:i:s",$time2);
格式字符串参见: