Blogger Information
Blog 32
fans 0
comment 0
visits 27949
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php函数基础知识
Yang_Sir
Original
422 people have browsed it

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 )
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:少了总结 , 下次注意
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post