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


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

  • 函数的参数

  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();

更多相关文章

  1. php之灭绝秘授函数,变量,师太亲传作用域,返回值
  2. 参数,作用域,匿名函数
  3. PHP基础课第三次作业
  4. PHP编程0804作业:函数的返回值,参数? 匿名函数以及变量作用域
  5. php编程0804作业
  6. 模板字面量、标签函数、解构赋值与对象字面量的简化
  7. 匿名函数、箭头函数、立即执行函数和字面量
  8. 匿名函数、箭头函数和立即执行函数
  9. JavaScript基础了解

随机推荐

  1. Android Studio 1.2中配置androidannotat
  2. Android Material Design之CoordinatorLa
  3. Android之蓝牙设备使用
  4. 安卓课程二十一 SeekBar拖动控件的使用
  5. Android 获取包名,版本信息
  6. Android attrs文件(自定义)属性详解
  7. android中的spinner动态加载内容
  8. android8.0屏蔽状态栏下拉
  9. Qt for Android Flutter - AAPT: error:
  10. Android 创建悬停通知栏