Blogger Information
Blog 30
fans 0
comment 2
visits 29497
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP 函数的基本知识
司马青衫
Original
591 people have browsed it

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. }

Correcting teacher:GuanhuiGuanhui

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