Blogger Information
Blog 43
fans 1
comment 0
visits 33470
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP函数类型、返回值及参数类型
蔚蓝世纪
Original
1407 people have browsed it

一、什么是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是特殊的序列化返回值。

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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!