博客列表 >PHP 函数的基本知识

PHP 函数的基本知识

司马青衫
司马青衫原创
2020年07月12日 14:57:44588浏览

PHP 函数的基本知识

PHP 函数的声明与调用

  1. <?php
  2. //函数声明
  3. function compare(float $a, float $b):int{
  4. return ($a >= $b)?1:0;
  5. }
  6. //函数调用
  7. echo compare(10,5);

PHP 函数的类型

  1. <?php
  2. //1.自定义函数
  3. function myName():string{
  4. return 'simaqingshan';
  5. }
  6. echo '我的名字:'.myName().'<br>';
  7. //2.系统函数
  8. $my_name = 'simaqingshan';
  9. echo '我的名字:'.strtoupper($my_name).'<br>';
  10. //3.可变函数
  11. $name = 'myName';
  12. echo '我的名字:'.$name().'<br>';
  13. //4.匿名函数
  14. $my_name = function():string{
  15. return 'simaqingshan';
  16. };
  17. echo '我的名字:'.$my_name().'<br>';
  18. //5.匿名函数使用父作用域中的变量
  19. $capital = true;
  20. $my_name = function() use($capital):string{
  21. return ($capital)?strtoupper('simaqingshan'):'simaqingshan';
  22. };
  23. echo '我的名字:'.$my_name().'<br>';

PHP 函数的返回值

  1. <?php
  2. //1.数据拼接成字符串
  3. function simpleOperation1(float $op1, float $op2):string{
  4. $op_add = $op1 + $op2;
  5. $op_sub = $op1 - $op2;
  6. $op_mul = $op1 * $op2;
  7. $op_div = $op1 / $op2;
  8. return '加:'.$op_add.'&nbsp;'.'减:'.$op_sub.'&nbsp;'.'乘:'.$op_mul.'&nbsp;'.'除:'.$op_div;
  9. }
  10. echo simpleOperation1(120,240).'<br>';
  11. //2.数据形成数组
  12. function simpleOperation2(float $op1, float $op2):array{
  13. $op_add = $op1 + $op2;
  14. $op_sub = $op1 - $op2;
  15. $op_mul = $op1 * $op2;
  16. $op_div = $op1 / $op2;
  17. return ['addition'=>$op_add,'subtraction'=>$op_sub,'multiplication'=>$op_mul,'divsion'=>$op_div];
  18. }
  19. print_r(simpleOperation2(345,234));
  20. echo '<br>';
  21. //3.数据json化
  22. function simpleOperation3(float $op1, float $op2):string{
  23. $op_add = $op1 + $op2;
  24. $op_sub = $op1 - $op2;
  25. $op_mul = $op1 * $op2;
  26. $op_div = $op1 / $op2;
  27. return json_encode(['addition'=>$op_add,'subtraction'=>$op_sub,'multiplication'=>$op_mul,'divsion'=>$op_div]);
  28. }
  29. //直接输出json化的字符串
  30. echo simpleOperation3(456,543);
  31. echo '<br>';
  32. //json数据解码成数组
  33. $result_arr = json_decode(simpleOperation3(456,543));
  34. print_r($result_arr);
  35. echo '<br>';
  36. //4.数据序列化
  37. function simpleOperation4(float $op1, float $op2):string{
  38. $op_add = $op1 + $op2;
  39. $op_sub = $op1 - $op2;
  40. $op_mul = $op1 * $op2;
  41. $op_div = $op1 / $op2;
  42. return serialize(['addition'=>$op_add,'subtraction'=>$op_sub,'multiplication'=>$op_mul,'divsion'=>$op_div]);
  43. }
  44. echo simpleOperation4(231,342);
  45. echo '<br>';
  46. $result_arr = unserialize(simpleOperation4(231,342));
  47. print_r($result_arr);
  48. echo '<br>';

PHP 函数的参数

  1. <?php
  2. //1.默认方式 值参数
  3. function opposition1(bool $flag):bool{
  4. //对$flag进行反转
  5. return $flag = $flag?false:true;
  6. }
  7. var_dump(opposition1(true));
  8. echo '<hr>';
  9. //2.引用参数 会改变被引用的参数的值
  10. function opposition2(bool &$flag):bool{
  11. return $flag = $flag?false:true;
  12. }
  13. $bool_flag = false;
  14. var_dump($bool_flag);
  15. var_dump(opposition2($bool_flag));
  16. var_dump($bool_flag);
  17. echo '<hr>';
  18. //3.默认参数
  19. //函数在调用时部分参数可以不填 使用函数声明时的默认参数
  20. function opposition3(bool $flag, bool $enable=true):bool{
  21. //当$enable为true时对$flag进行反转
  22. return $flag = ($enable?($flag?false:true):$flag);
  23. }
  24. var_dump(opposition3(false,false));
  25. //使用默认参数 可以少写一个参数
  26. var_dump(opposition3(false));
  27. echo '<hr>';
  28. //4.剩余参数
  29. //应用在函数声明中使用...进行收集参数
  30. function opposition4(...$flags):array{
  31. $result = [];
  32. foreach($flags as $value){
  33. $result[] = $value?false:true;
  34. }
  35. return $result;
  36. }
  37. var_dump(opposition4(1,0,1,0));
  38. //应用在函数调用中使用...进行参数展开
  39. $flag_arr = [1,1,1,0,0,0];
  40. echo '<hr>';
  41. var_dump(opposition4(...$flag_arr));

PHP 函数的命名空间

  • 函数与变量一样存在命名空间
  1. <?php
  2. namespace ns1{
  3. function myName(){
  4. return 'simaqingshan';
  5. }
  6. }
  7. namespace ns2{
  8. function myName(){
  9. return 'SIMAQINGSHAN';
  10. }
  11. }
  12. //定义全局空间:匿名空间
  13. namespace {
  14. echo \ns1\myName().'<hr>';
  15. echo \ns2\myName().'<hr>';
  16. }

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