博客列表 >函数的参数 返回值 传参 以及理解匿名函数的作用域

函数的参数 返回值 传参 以及理解匿名函数的作用域

手机用户1617360551
手机用户1617360551原创
2021年08月05日 18:30:21600浏览

函数的参数 返回值 传参 实例演绎匿名函数的作用域及调用全局变量


一.函数的参数 返回值 传参

  • 函数的参数

  1. function sum($a,$b) //$a $b 是这个函数的形参,用逗号隔开
  2. {
  3. return $a + $b; //函数的返回值
  4. }
  5. echo sum(15,25); //函数的实参
  • 剩余参数

  1. <?php
  2. $arr = [12,34,545,456,1111,23456];
  3. //当函数参数数量不确定时,使用剩余参数
  4. function demo(...$args) //剩余参数用在参数列表中表示的将数据收集
  5. {
  6. return array_sum($args);
  7. }
  8. echo demo(...$arr);//当剩余参数用在调用参数中表示将数据展开
  • 函数的返回值

    1.函数只能返回单个值
  1. <?php
  2. function demo1($name){
  3. return 'Hello,'.$name; //只会返回第一个值
  4. echo '你好',$name;//不会返回这行代码了 return 后边的代码不会被返回
  5. }
  6. echo demo1('灭绝老师');
2.如果想返回多个值的几种方法
  • 通过数组的形式返回
  1. <?php
  2. function Goos($name,$price)
  3. {
  4. return ['name'=>$name,'price'=>$price];//用数组的方式返回
  5. }
  6. print_r(Goos('iphone 12 pro max',10999));//数组用print_r打印
  • 通过对象的方式进行返回
  1. <?php
  2. function Character()
  3. {
  4. return new class()
  5. {
  6. public $name = '灭绝老师';
  7. public $occupation = 'PHPteacher';
  8. };
  9. }
  10. $obj = Character(); //将对象信息赋给一个变量
  11. var_dump($obj);
  12. echo '<br>';
  13. echo $obj->name.'<br>';//通过->的方式返回对象里的值
  14. echo $obj->occupation;
  • 通过JSON序列化的方式返回
  1. <?php
  2. function demo()
  3. {
  4. return json_encode(['name'=>'灭绝老师','Character'=>'PHPteacher','sex'=>'女']);
  5. }
  6. //josn_endode()将数组转为JOSN字符串
  7. echo demo();//JSON返回的是字符串,可以用ECHO打印
  8. echo '<br>';
  9. $res = demo();
  10. var_dump(json_decode($res));
  11. //通过json-decode()可以将字符串转换为数组格式

函数开发中的应用场景

  1. <?php
  2. function demo3(int $rows,int $cols,string $content,string $color)
  3. //形参
  4. {
  5. $table = "<table border = '1' bgcolor = '$color'>" ;
  6. for($i = 0; $i < $rows ; $i++)
  7. {
  8. $table .= "<tr>";
  9. for($j = 0; $j < $cols; $j++)
  10. {
  11. $table .= "<td>$content</td>";
  12. }
  13. $table .= "</tr>";
  14. }
  15. $table .= "</table>";
  16. return $table;
  17. }
  18. echo demo3(2,4,'武侠','red');//实参 与函数中的形参一一对应

二.函数之匿名函数

  • 匿名函数相对于命名函数,就是没有名字的函数

    命名函数是全局成员,不受作用域的限制

    匿名函数,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数

  • 命名函数调用全局变量的方法
  1. <?php
  2. $time = '晚上';
  3. $food = '烧烤';
  4. function dinner(){
  5. global $time,$food;//函数内部调用全局变量,需要用GLOBAL关键字引入
  6. return "今天{$time}吃{$food}";
  7. }
  8. echo dinner();
  • 匿名函数调用全局变量的方法
  1. $do = "爬山";
  2. $amusement = function() use ($do)//匿名函数调用全局变量用的是use关键字
  3. {
  4. return "周末我们一去去$do";
  5. };
  6. echo $amusement();
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议