PHP函数⽤法详解【初始化、嵌套、内置函数等】⽬录
函数的基本语法格式
参数设置
变量的作⽤域
嵌套调⽤
递归调⽤
1. 静态变量
变量的作⽤域
2.可变函数
3.回调函数
4. 匿名函数
字符串函数
数字函数
时间⽇期函数
本⽂实例讲述了PHP函数⽤法。分享给⼤家供⼤家参考,具体如下:
初始函数
函数:封装⼀段⽤于完成特定功能的代码。
通俗理解函数:可以完成魔⿁⼯作的代码块,就像积⽊⼀样,可以反复使⽤,在使⽤的时候,拿来即⽤。
函数定义:1)内置函数(字符串操作函数、数组操作函数)2)⾃定义函数
函数的基本语法格式
function 函数名([参数1.参数2,......]){
函数体......
}
函数的定义由⼀下四部分组成:
关键字function
function:在声明函数时必须使⽤的关键字;
函数名functionName
函数名:要符合PHP的标识符,且函数名是唯⼀的,不区分⼤⼩写
参数
[参数1,参数2…]:在外界传递给函数的值,他是可选的,多个参数之间使⽤逗号“,”分隔。
函数体
函数体:函数定义的主体,专门⽤于实现特定的代码段。
返回值:需要使⽤return关键字将需要返回的数据传递给调⽤者。
参数设置
对于函数来说,参数的不同设置,决定了其调⽤和使⽤⽅式
⽆参函数
按值传递参数
PHP默认⽀持按值传递参数,按此种⽅式定义的函数,在函数内部可以睡⾐对⽤户传递的参数进⾏操作。
引⽤传参
在开发中,若需要函数修改它的参数值,则需要通过函数的引⽤传递。实现⽅式只需要在参数中前添加“&”符号即可。
设置参数默认值
函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调⽤者未传递该参数时,函数将使⽤默认值进⾏操作。
当使⽤默认参数时,默认参数必须放在⾮默认参数的右侧,否则函数可能出错。
指定参数类型(弱)
在PHP 7.0及以上的版本后,在⾃定义函数时,可以指定参数具体时那种数据类型
当⽤户调⽤函数时,如果传递参数不是int类型。程序传递的参数不是int类型,程序会将其强制的转换为int型后,在进⾏操作,这种⽅式称为弱类型参数设置。
指定参数类型(强)
除此之外,还可以将其设置为强类型的参数,即当⽤户传递的类型不符合函数的定义,程序会报错提醒。
变量的作⽤域
变量在定义后,默认情况下,可以在函数中使⽤,函数外不可以。
变量只有在其作⽤范围内才可以被使⽤,这个作⽤范围称为变量的作⽤域。
在函数中定义的变量称为局部变量
在函数外定义的变量称为全局变量
function test (){
$sum = 36; //局部变量
return $sum;
}
$sum = 0; //全局变量
echo text(); //输出结果:36
echo $sum; //输出结构:0
那么如何在函数中使⽤全局变量呢?
答:参数传递,global关键字和超全局变量$GLOBALS。
$snap = 'nihao';
function abc(){
global $snap;//全局变量的关键词,通常加在变量前。引⽤全局变量
return $GLOBALS['snap'];//引⽤外部变量。定义全局变量
}
echo abc();
函数的嵌套调⽤
嵌套调⽤
函数的嵌套调⽤:指的是在调⽤⼀个函数的过程中,调⽤另外⼀个函数,这种在函数内调⽤其它函数的⽅式称为嵌套调⽤。
递归调⽤
递归调⽤:是函数嵌套调⽤中⼀种特殊的调⽤。它指的是⼀个函数在其函数体内调⽤⾃⾝的过程,这种函数成为递归函数
函数的⾼级应⽤
1. 静态变量
轻松得到函数被访问的次数,⼀是在函数中使⽤全局变量记录,缺点是全局变量可随时⼦啊函数外被改变,不能准确的记录;⼆是在函数中使⽤静态变量。
php新闻发布管理系统变量的作⽤域
局部变量:在函数的内部定义的变量,其作⽤域是所在函数
全局变量:被定义在所有函数以外的变量,其作⽤域是整个PHP⽂件,但在⽤户⾃定义函数内部是不可⽤的。如果希望在⽤户⾃定义函数内部使⽤全局变量。则要使⽤global关键字声明
静态变量:能够在函数调⽤结束后仍保留变量值,当再次回到其作⽤域时,⼜可以继续使⽤原来的值,⽽⼀般变量在函数调⽤结束后,其存储的数据值将被清除,所占的内存空间被释放。使⽤静态变量时,先要⽤static来声明变量,把关键字static放在要定义的变量之前。
2.可变函数
可变函数:可变变量,他的实现是在⼀个变量前添加⼀个“¥符号”,就变成了另外⼀个变量。同理,可变函数的实现就是在⼀个变量名后添加⼀对圆括号“()”,让其变成⼀个函数的形式,然后PHP就寻与变量值同名的函数,并且尝试执⾏它
3.回调函数
回调函数:指的就是具有callable类型的函数,⼀般⽤作参数的传递。如PHP内置函数call_user_func()可以接受⽤户⾃定义的回调函数作为参数。
4. 匿名函数
匿名函数:就是没有函数名称的函数,也称作闭包函数,经常⽤作回调函数参数的值。对于临时定义的函数,使⽤匿名函数⽆需考虑函数命名冲突的问题
php的内置函数
字符串函数
字符串函数是PHP⽤来操作字符串的内置函数,在实际开发中有着⾮常重要的作⽤
截取给定路径中的字符串
$url = 'C:\web\apache2.4\htdocs\cat.jpg';
$pos = strrpos($url, '\\');
// 截取⽂件名称,输出结果:cat.jpg
echo substr($url, $pos + 1);
// 截取⽂件所在的路径,输出结果:C:\web\apache2.4\htdocs
echo substr($url, 0, $pos);
strrpos()函数⽤于在$url中获取“\”最后⼀次出现的位置$pos。
substr()函数的第1个参数表⽰待截取的字符串,第2个参数表⽰开始截取的位置,⾮负数表⽰从字符串指定位置处截取,从0开始;负数表⽰从字符串尾部开始。第3个参数表⽰截取的长度。substr()函数的第3个参数表⽰截取的长度,该长度的设置具体有以下4种情况。
省略第3个参数时,将返回从指定位置到字符串结尾的⼦字符串。
第3个参数为正数,返回的字符串将从指定位置开始,最多包含指定长度的字符,这取决于待截取字符串的长度。
第3个参数为负数,返回的字符串中在结尾处将有个指定长度的字符被省略。
第3个参数为0、false或null,将返回⼀个空字符串。
替换指定位数的字符
替换指定位数的字符,在开发也是很常见的功能。例如,在各种抽奖环节中,为了保证⽤户的隐私,出现的⼿机号⼀般使⽤“*”将第4⾄7位的数字进⾏覆盖
$tel = '188********';  // 随意输⼊⼀串数字作为⼿机号
$len = 4;    // 需要覆盖的⼿机号长度
$replace = str_repeat('*', $len);  // 根据指定长度设置覆盖的字符串
echo substr_replace($tel, $replace, 3, $len); // 输出结果: 188****1888
str_repeat()函数⽤于对“*”字符重
复len次。substrreplace()函数用于对字符串
len次。substr_replace()函数用于对字符串" role="presentation"
>len次。substrreplace()函数⽤于对字符串len次。substrr e place()函数⽤于对字符串tel中第3个位置开始后
的len长度的字符使用 len长度的字符使用" role="presentation" >len长度的字符使⽤len长度的字符使⽤replace进⾏替换。
数字函数
为了⽅便开发⼈员处理程序中的数学运算,PHP内置了⼀系列的数学函数,⽤于获取最⼤值、最⼩值、
⽣成随机数等常见的数学运算。
echo ceil(5.2); // 输出结果:6
echo floor(7.8); // 输出结果:7
echo rand(1, 20); // 随机输出1到20间的整数
ceil()函数是对浮点数5.2进⾏向上取整,
floor()函数是对浮点数进⾏向下取整,
rand()函数的参数表⽰随机数的范围,第1个参数表⽰最⼩值,第2参数表⽰最⼤值。
时间⽇期函数
在使⽤PHP开发Web应⽤程序时,经常会涉及⽇期和时间管理。
例如倒计时、⽤户登录时间、新闻发布时间、购买商品时下订单的时间等。
为此,PHP提供了内置的⽇期和时间处理函数,满⾜开发中的各种需求。
Unix时间戳是⼀种时间的表⽰⽅式,它是为了解决编程环境中时间运算的问题。
Unix时间戳(Unix timestamp):定义了从格林威治时间1970年01⽉01⽇00时00分00秒起⾄现在的总秒数,以32位⼆进制数表⽰。
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
time()函数⽤于获取当前时间的Unix时间戳,
mktime()和strtotime()函数可将给定的⽇期时间转换成Unix时间戳,前者的参数分别表⽰“时分秒⽉⽇年”,后者可以是任意时间的字符串。
函数microtime()⽤于获取当前Unix时间戳和微秒数,不设置参数时,返回值的形式前⾯⼀段数字表⽰微妙数,后⾯⼀段数字表⽰秒数;设置参数时,⼩数点前表⽰秒数,⼩数点后表⽰微秒数。
格式化时间戳:对于⽤户来说,时间戳的直接输出,会让其看到⼀个毫⽆意义的整型数值。为了将时间戳表⽰的时间以友好的形式显⽰出来,可以对时间戳进⾏格式化。
echo date('Y-m-d H:i:s');  // 输出结果:2017-02-21 16:48:16
echo date('Y-m-d', 1487666317); // 输出结果:2017-02-21
date()函数第1个参数表⽰格式化⽇期时间的样式
date()函数第2个参数表⽰待格式化的时间戳,省略时表⽰格式化当前时间戳。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》
希望本⽂所述对⼤家PHP程序设计有所帮助。