博客列表 >php函数基础知识

php函数基础知识

Yang_Sir
Yang_Sir原创
2020年04月23日 14:11:22417浏览

1.函数类型

1.1 自定义函数

  • 根据自身需求创建函数
  1. <?php
  2. //声明一个函数:打印欢迎内容
  3. function hello()
  4. {
  5. echo '<h2 style=" color :lightblue">欢迎您!</h2>';
  6. }
  7. //调用函数
  8. hello();

1.2 系统函数

  • PHP 预定义函数
  • 例:
  1. <?php
  2. $phone_number = '13535645687';
  3. //strlen()函数,获取字符串长度
  4. if(strlen($phone_number)===11):echo '手机号正确';
  5. else: echo '手机号不正确';
  6. endif;
  7. ////输出结果:手机号正确
  8. //substr()函数,截取字符串
  9. echo '该手机号的号段是:'.substr($phone_number,0,3);//输出结果:135
  10. //count():统计数组的元素个数
  11. echo count([1,2,3,'php','']);//输出结果:5

1.3 可变函数

  • 调用的函数名是变量,根据变量的值找到对应函数
  • 例:
  1. <?php
  2. //可变函数
  3. $function_name = 'setName';
  4. //声明一个为名称添加后缀的函数
  5. function setName(string $name):string
  6. {
  7. return $name.'_php.cn';
  8. }
  9. echo $function_name('首页');
  10. //打印结果:首页_php.cn

1.4 匿名函数

  • 也称闭包函数,没有指定的函数名。
  • 使用use关键字,可以在匿名函数中访问父作用域中的变量
  1. <?php
  2. $arr = [0=>'admin',1=>'guest',12=>'wang',23=>'li'];
  3. $username=function (int $key) use($arr):string
  4. {
  5. return trim($arr[$key]) ;
  6. };
  7. echo $username(1);//输出结果:guest

2. 函数的返回值

  • 函数的返回值只能有一个
  • 当有多个返回值的时候,需要进行处理。合并成数组或拼接字符串
  1. <?php
  2. //1.字符串拼接
  3. //隐藏部分卡号
  4. function hide(int $cardno):string{
  5. $bin = substr($cardno,0,6);
  6. $last_four = substr($cardno,-4,4);
  7. return $bin.'****'.$last_four;
  8. }
  9. echo hide('6228481254654584');//输出结果:622848****4584
  10. //2.数组
  11. //找出数组中大于20的数
  12. $arr=[12,56,25,1,0,25];
  13. function seek(array $arr) :array {
  14. $res = array();
  15. foreach($arr as $value){
  16. if($value>=20){
  17. $res[]=$value;
  18. }
  19. }
  20. return $res;
  21. }
  22. printf('<pre>%s</pre>',print_r(seek($arr),true));
  23. //输出结果:
  24. // Array
  25. // (
  26. // [0] => 56
  27. // [1] => 25
  28. // [2] => 25
  29. // )
  30. //3.json
  31. //将字符串转换为json字符串
  32. function getList(string $list):string{
  33. $arr = explode(',',$list);
  34. return json_encode($arr);
  35. }
  36. echo getList('php,java,python,javascript');
  37. //输出结果:["php","java","python","javascript"]
  38. //4.序列化
  39. function err(string $eror_message):string{
  40. return serialize(['code'=>'110','message'=>$eror_message]);
  41. }
  42. echo err('未知错误');
  43. //输出结果:a:2:{s:4:"code";s:3:"110";s:7:"message";s:12:"未知错误";}
  44. //反序列化:unserialize()
  45. print_r(unserialize(err('未知错误')));
  46. //输出结果:Array ( [code] => 110 [message] => 未知错误 )

3. 函数的参数

  • 函数可以通过参数传递数据

3.1 引用参数

  • 一般参数传递变量的值,通过&可以引用传递
  • 例:
  1. $a = $b=10;
  2. function sum($c,&$d)
  3. {
  4. $c+=10;$d+=10;
  5. return $c.';'.$d;
  6. }
  7. echo sum($a,$b),'<br>';
  8. echo $a.';'.$b;
  9. //输出结果:
  10. // 20;20
  11. // 10;20
  12. //第一个参数为值传递:原变量值未改变;第二个参数为引用传递,值发生了改变

3.2 默认参数

  • 函数的参数可以设置默认值,是为默认参数
  • 调用函数时,默认参数称为可选项可以不传参
  • 默认参数需放在必选参数之后
  • 例:
  1. <?php
  2. //拼接查询语句
  3. //$order=''参数默认为空,可选
  4. function sqlStr($table,$fields,$where,$order=''){
  5. return 'select '.$fields.' from '.$table.' where '.$where.' '.$order;
  6. }
  7. //传4个参数
  8. echo sqlStr('`user`','`id`,`name`,`status`,`create_time`','`create_time`>1585850756','order by `create_time` desc');
  9. echo '<br>';
  10. //传三个参数
  11. echo sqlStr('`user`','`id`,`name`,`status`,`create_time`','`create_time`>1585850756');
  12. //输出结果:
  13. //select `id`,`name`,`status`,`create_time` from `user` where `create_time`>1585850756 order by `create_time` desc
  14. //select `id`,`name`,`status`,`create_time` from `user` where `create_time`>1585850756

3.3 剩余参数

  • 不限定参数数量,在函数参数中通过...数组名将所有参数放到一个数组中
  • 调用函数时也可以通过...数组名将数组的元素展开作为参数传递

  • 例:

  1. <?php
  2. //清除多个参数的值的空格
  3. function format(...$param){
  4. $res = array();
  5. foreach($param as $value){
  6. $res[]=trim($value);
  7. }
  8. return $res;
  9. }
  10. $arr = [' jack','r12546 '];
  11. print_r(format(...$arr));
  12. //输出结果:Array ( [0] => jack [1] => r12546 )
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议