博客列表 >PHP基础:函数基础知识

PHP基础:函数基础知识

暴宇
暴宇原创
2020年05月27日 22:22:40649浏览

PHP基础:函数基础知识

1.函数的4种类型:系统函数、自定义函数、可变函数、匿名函数

  1. // 1.函数的4种类型
  2. // 1.1 系统函数
  3. echo '系统函数举例:<br>';
  4. echo '1.系统日期函数</br>';
  5. echo '今天是'.date('Y').'年'.date('m').'月'.date('d').'日<br>';
  6. echo '2.获取字符串长度函数</br>';
  7. echo '字符串:Hello Word的长度是'.strlen('Hello Word'),'<br>';
  8. echo '3.字符串截取函数</br>';
  9. echo '字符串:Hello Word截取前5个字符'.substr('Hello Word',0,5),'<br>';
  10. echo '4.字符替换函数</br>';
  11. echo '将字符串:Hello Word中的Word改为Everyone;'.str_replace('Word','Everyone','Hello Word'),'<br>';
  12. echo '5.四舍五入函数';
  13. echo '圆周率3.1415926四舍五入保留2位小数:'.round(3.1415926,2),'<br>';
  14. // 1.2自定义函数
  15. // 函数的命名规则同变量的命名规则
  16. // getPrice: 小驼峰命名法 get_price: 蛇形命名法
  17. echo '自定义函数举例:';
  18. function user($username,$age){
  19. return "姓名:".$username.",年龄:".$age;
  20. }
  21. echo user("张三",20);
  22. echo '<hr>';
  23. // 1.3可变函数
  24. echo '可变函数举例:';
  25. $funName = 'user';
  26. echo $funName('BAOYU', 30),'<hr>';
  27. // 1.4匿名函数
  28. $discount = 0.6;
  29. // $discount 的作用域是全局
  30. $getAmount = function ($money, $num) use ($discount){
  31. $amount = $money * $num;
  32. return $amount >= 2000 ? $amount * $discount : $amount;
  33. };
  34. echo '实付金额: ' . $getAmount(100, 20);
  35. echo '<hr>';

2.函数多值返回的4种形式:字符串拼装、数组、JSON字符串、序列化字符串

  1. //2. 函数多值返回的4种形式
  2. // 2.1 字符串拼装
  3. function fun1(){
  4. $start = 'Hello ';
  5. $name = 'BAOYU';
  6. return $start .$name.'!';
  7. }
  8. echo fun1();
  9. echo '<hr>';
  10. // 2.2 数组
  11. function fun2(){
  12. return ['start'=>'Hello ', 'name'=>'BAOYU'];
  13. }
  14. echo fun2()['start'].fun2()['name'].'!';
  15. echo '<hr>';
  16. // 2.3 JSON字符串
  17. function fun3(){
  18. $arr= ['start'=>'Hello ', 'name'=>'BAOYU'];
  19. return json_encode($arr);
  20. }
  21. print_r(json_decode(fun3(), true));
  22. echo '<hr>';
  23. // 2.4 序列化: 字符串
  24. function fun4(){
  25. $arr= ['start'=>'Hello ', 'name'=>'BAOYU'];
  26. return serialize($arr);
  27. }
  28. // 反序列化后才可以使用
  29. $arr =unserialize(fun4());
  30. var_dump($arr,true);

3.函数的4种参数:值参数、引用参数、默认参数、剩余参数

  1. // 3.函数的4种参数
  2. // 3.1 值参数
  3. function fun5($num){
  4. return $num *= 2;
  5. }
  6. $num=100;
  7. echo '函数返回的值:',fun5($num) , '<br>';
  8. echo '传参给函数的值:',$num, '<hr>';
  9. // 在函数中改变了调用参数的值,但原始调用参数并没有发生变化
  10. // 3.2 引用参数
  11. function fun6(&$num){
  12. return $num *= 2;
  13. }
  14. $num=100;
  15. echo '函数返回的值:',fun6($num) , '<br>';
  16. echo '传参给函数的值:',$num, '<hr>';
  17. // 如果在参数前面使用了取地址符,则会改变原始调用参数的值
  18. // 3.3 默认参数
  19. // 默认参数必须写在必选参数的后面
  20. function fun7($a, $b, $c = '默认参数' )
  21. {
  22. return '第1个参数是:'.$a.';第2个参数是:'.$b.';第3个是默认参数:'.$c;
  23. }
  24. echo '未传第3个参数时函数返回默认值:'.fun7('1','2'),'<br>';
  25. echo '传了第3个参数时函数返回传参值:'.fun7('1','2','3'),'<hr>';
  26. // 3.4 剩余参数:用...代表多个剩余参数
  27. function fun8($a,...$n ){
  28. $str='第1个必传参数是:'.$a.'<br>';
  29. $str.='剩余的参数分别是:';
  30. foreach($n as $na){
  31. $str.=$na.',';
  32. }
  33. return $str;
  34. }
  35. // 调用参数
  36. $arr = [1,2,3,4,5,6,9,22,67];
  37. // ...:
  38. // (1)用在函数的形式参数列表中,表示"收集",将多个离散的参数打包到一个数组中处理
  39. // (2)用在函数的调用参数列表中,表示"展开",还原将一个数组展开成一个个离散的值
  40. echo fun8(...$arr);
  41. echo '<hr>';

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