博主信息
博文 23
粉丝 0
评论 0
访问量 25870
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
函数的参数 返回值 传参 以及理解匿名函数的作用域
手机用户1617360551
原创
823人浏览过

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


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

  • 函数的参数

  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();
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学