Blogger Information
Blog 5
fans 0
comment 0
visits 2032
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0804-1. 总结函数的返回值,参数? 2. 匿名函数以及变量作用域问题的理解?
马勇*JackMa
Original
406 people have browsed it

关于函数的返回值和参数

  • 返回值

return 八种数据类型、函数(命名函数,匿名函数等)中其中任意一种

  • 函数参数

1.函数参数可以改变函数体的执行行为
2.实参和形参的映射关系,是从左至右依次一一对应的
3.形参可以设置默认值,当实参没有传递值时,将使用默认值;反之当实参有传递值时将覆盖掉默认值

  1. function sayHello(ar1,ar2=10,...,arn){
  2. return arr1.arr2. ... .arn;
  3. }
  4. echo sayHell(1,2,...,n);
  • 剩余参数

使用...作为展开和收集参数的标识符

  1. function sayHello(...arguments){ //收集所有形参,得到一个数组
  2. return arguments;
  3. }
  4. $arr = ['lucy','jack','kity'];
  5. var_dump(sayHello(...$arr)); //展开数组,作为实参传递给函数

匿名函数以及变量作用域

  • 匿名函数
    匿名函数也称为闭包
  1. //定义方式
  2. $sayHello = function($name){
  3. return "{$name}说:大家早上好";
  4. }
  5. echo $sayHello('Lucy');
  • 变量的作用域
    1.在函数体外定义的变量,在函数内部是无法直接使用的,需要使用系统关键字gloabl 变量名$GLOBALS['变量名']进行声明
    2.匿名函数使用外部变量,除了再调用时传参,还可以使用关键字use('外部变量名')声明变量的作用的域

    1. $name = 'jack';
    2. //命名函数使用外部变量,第一种方式
    3. function printName (){
    4. global $name; //先声明
    5. return $name;
    6. }
    7. //命名函数使用外部变量,第二种方式
    8. function printName(){
    9. return $GLOBALS['name']; //注意这里变量名不加$
    10. }
    11. echo printName();
    12. //匿名函数使用外部变量
    13. $say = '上午好';
    14. $printName = function($name) use($say){
    15. return $name.'说:'.$say;
    16. }; //注意:匿名函数作为一个执行语句块,必须使用`;`结束
    17. echo $printName($name);
    18. //匿名函数作为函数的返回值,匿名函数体使用函数中的变量
    19. function sayHello($name){
    20. return function($say) use($name) {
    21. return $name.'说:'.$say
    22. }
    23. }
    24. echo sayHello($name)($say);

    命名函数作用于全局,因此定义函数和调用函数没有严格的顺序之分;而匿名函数就必须先定义,再调用

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