Blogger Information
Blog 23
fans 0
comment 0
visits 18987
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
函数的参数 返回值 传参 以及理解匿名函数的作用域
手机用户1617360551
Original
610 people have browsed it

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


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

  • 函数的参数

  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();
Correcting teacher:PHPzPHPz

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