博客列表 >PHP函数类型、返回值及参数类型

PHP函数类型、返回值及参数类型

蔚蓝世纪
蔚蓝世纪原创
2020年05月04日 11:30:511415浏览

一、什么是PHP函数

函数就是功能。调用一个函数就是在调用一个功能。

二、PHP 函数准则

函数的名称应该提示出它的功能。
函数名称以字母或下划线开头(不能以数字开头)。

三、函数的语法

  1. function 函数名称(类型: 参数列表): 返回值类型
  2. {
  3. // 函数体
  4. return 返回值;
  5. }

四、函数的分类

| 1 | 自定义函数 | function abc(){...} | 用户根据业务需求创建|

举例:

  1. function abc(){
  2. echo '正是江南好风景';
  3. }
  4. abc();

运行效果:

| 2 | 系统函数 | substr(), count()... | 也叫预定义函数,不必声明直接调用|

举例:

  1. $count = '200';
  2. echo $count;

运行效果:

| 3 | 可变函数 | $funcName(); | 函数名使用变量表示|

举例:

  1. function xyz(int $money,float $discount):float
  2. {
  3. return $money * $discount;
  4. }
  5. echo '数字是:' . xyz(6000,0.8);
  6. echo '<hr>';
  7. $funcName = 'xyz';
  8. echo '数字是:' . xyz(5000,0.5);
  9. echo '数字是:' . $funcName(5000,0.5);
  10. echo '<hr>';

运行效果:

| 4 | 匿名函数 | $f = function (){...} | 也叫”闭包”或”函数表达式”,常用做回调处理 |

举例:

  1. $great = function($big)
  2. {
  3. echo $big . '又大又圆的苹果';
  4. };
  5. $great('桔子');
  6. $great('西瓜');

运行效果:

五、函数多值返回的四种形式

函数必须要有返回值,并且必须遵守“单值返回”原则。

举例:

  1. function sub($x,$y)
  2. {
  3. $final=$x-$y;
  4. return $final;
  5. }
  6. echo "20 - 5 = " . sub(20,5);

运行效果:

如果需要返回多个值,可以通过以下手段。
| 1 | string | 字符串拼接 |

举例:

  1. function small ():string
  2. {
  3. $number = 1;
  4. $name = '张三丰';
  5. return $number . ':' . $name;
  6. }
  7. echo small();
  8. echo '<br>';
  9. function small2 ():string
  10. {
  11. $number = 2;
  12. $name = '李寻欢';
  13. return $number . ':' . $name;
  14. }
  15. echo small2();
  16. echo '<br>';
  17. function small3 ():string
  18. {
  19. $number = 3;
  20. $name = '陆小凤';
  21. return $number . ':' . $name;
  22. }
  23. echo small3();

运行效果:

| 2 | array | 数组 |

举例:

  1. function small4 (): array
  2. {
  3. $number = 1;
  4. $name = '张三丰';
  5. return ['number'=>1,'name'=>'张三丰'];
  6. }
  7. printf('<pre>%s</pre>',print_r(small4(),true));
  8. echo '<hr>';
  9. function small_numbers ()
  10. {
  11. return array ( 1 , 3 , 5 );
  12. }
  13. list ( $one , $three , $five ) = small_numbers ();
  14. printf('<pre>%s</pre>',print_r(small_numbers(),true));

运行效果:

| 3 | json | JSON 字符串 |

举例:

  1. function small4 (): array
  2. {
  3. $number = 1;
  4. $name = '张三丰';
  5. return ['number'=>1,'name'=>'张三丰'];
  6. }
  7. //echo '<pre>' .print_r(small4(),true)'</pre>';
  8. printf('<pre>%s</pre>',print_r(small4(),true));
  9. echo '<hr>';
  10. function small5() : string
  11. {
  12. //json encode():
  13. return json_encode(['number'=>1,'name'=>'张三丰']);
  14. }
  15. echo small5();
  16. // {
  17. // "number": 1,
  18. // "name": "\u5f20\u4e09\u4e30"
  19. // }
  20. echo '<hr>';
  21. function small6() : string
  22. {
  23. //json encode():
  24. return json_encode(['number'=>1,'name'=>'张三丰']);
  25. }
  26. $data = small6();
  27. echo $data;

运行效果:

| 4 | serialize | 序列化字符串 |

举例:

  1. function small4 (): array
  2. {
  3. $number = 1;
  4. $name = '张三丰';
  5. return ['number'=>1,'name'=>'张三丰'];
  6. }
  7. function small7() : string
  8. {
  9. return serialize(['number'=>1,'name'=>'张三丰']);
  10. }
  11. echo small7();
  12. //反序列化才可以使用
  13. $arr = unserialize(small7());
  14. printf('<pre>%s</pre>',print_r($arr,true));

运行效果:

六、函数的四种参数

| 1 | 值参数 | 默认传参方式 |

举例:

  1. function number1(float $arg) : float
  2. {
  3. return $arg *= 3;
  4. }
  5. $value = 40;
  6. echo number1($value) , '<br>';
  7. echo $value;

运行效果:

| 2 | 引用参数 | 改变原始调用参数值 |

举例:

  1. function number2(float &$arg) : float
  2. {
  3. return $arg *= 5;
  4. }
  5. $value = 35;
  6. echo number2($value) , '<br>';
  7. echo $value;

运行效果:

| 3 | 默认参数 | 调用时允许省略的参数 |

举例:

  1. function number3(float $x, float $y, string $opt = '+')
  2. {
  3. $res = 0;
  4. switch ($opt){
  5. case '+' :
  6. $res = "$x + $y =" .($x + $y);
  7. break;
  8. case '-' :
  9. $res = "$x - $y =" .($x - $y);
  10. break;
  11. case '*' :
  12. $res = "$x * $y =" .($x * $y);
  13. break;
  14. case '/' :
  15. $res = "$x / $y =" .($x / $y);
  16. break;
  17. default:
  18. $res = '非法操作符';
  19. }
  20. return $res;
  21. }
  22. echo number3(15,7), '<br>';
  23. echo number3(13,50,'*'), '<br>';
  24. echo number3(5,78,'#'), '<br>';

运行效果:

| 4 | 剩余参数 | 调用参数数量不确定 |

举例:

  1. function number6(...$args) : float
  2. {
  3. return array_sum($args);
  4. }
  5. $arr = [1,3,5,7,9,11,13,15,17];
  6. print_r(number6(...$arr));

运行效果:

七、总结函数的特点

1.可以在页面的任何位置调用函数。
2.函数名只能是字母,数字,下划线的组合,并且之间不能包含空格,数字不能放在变量名首位。与变量的命名类似。
3.函数名不区分大小写。
4.函数命名具有唯一性。
5.json是特殊的序列化返回值。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议