Blogger Information
Blog 33
fans 1
comment 0
visits 21835
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
总结函数的返回值,参数 2. 实例演绎你对课上回调函数,匿名函数的理解?
冰雪琉璃
Original
556 people have browsed it

函数的返回值,参数

1.语法

  1. function 函数名称([参数类型限定 参数列表]):返回值类型的限定
  2. {
  3. return 返回值;
  4. //注意函数体只能返回单个的值,返回值的类型是任意的类型的。
  5. echo 'hello';//不会执行因为执行了return。
  6. }
  7. function text(int $a,float $b):int{
  8. return $a+$b;
  9. }
  10. echo($res=text(12, 12.3));//24
  11. function text(int $a,float $b):int{
  12. return $a+$b;
  13. echo 'helloworld';//不会执行
  14. }
  15. echo($res=text(12, 12.3));//24
  16. //数组返回
  17. function demo1():array{
  18. return ['status'=>1,'msg'=>'验证成功'];
  19. }
  20. $res=demo1();
  21. echo $res['status']===1?$res['msg']:'验证失败';
  22. //对象返回
  23. function demo2():object
  24. {
  25. //匿名类
  26. return new class(){
  27. public $name="admin";
  28. public $email="12323@qq.com";
  29. };
  30. }
  31. $user=demo2();
  32. var_dump($user);
  33. //对象成员的访问 ->
  34. echo $user->name;
  35. echo $user->email;
  36. //转为json格式的字符串返回
  37. function demo3():string
  38. {
  39. return json_encode(['status'=>1,''sg'=>'验证成功'],
  40. JSON_UNESCAPEO_UNICODE);
  41. }
  42. $json_str=demo3();
  43. echo $json_str;//{"status":1,"msg":"验证成功"}
  44. //需要将json字符串解析,json_decode()还原成php能够处理的数据类型
  45. $res=json_decode($json_str,true);
  46. var_dump($res);//json object
  47. //也可以使用数组方式给定第二个参数
  48. $res=json_decode($json_str,true);
  49. var_dump($res);//array
  50. //以序列化字符串返回
  51. function demo4(){
  52. return serialize(['status'=>1,'msg'=>'登陆成功','code'=>254]);
  53. }
  54. $res=demo4();
  55. var_dump($res);

//循环实现表格

  1. $table="<table border='1' cellspacing='0'>";
  2. for($i=0;$i<3;$i++){
  3. //外层循环控制表格的行
  4. $table.="<tr>";
  5. //内层循环控制表格的列
  6. for($j=0; $j<2; $j++){
  7. $table .="</td>中国</td>";
  8. }
  9. $table .="</tr>";
  10. }
  11. $table.="</table>";
  12. echo $table;
##通过用函数打包将上面代码以参数形式实现一个三行两列的表格
  1. //函数的参数多个参数用逗号隔开
  2. function createTable(int $rows,int $colunms){
  3. $table="<table border='1' cellspacing='0'>";
  4. for($i=0;$i<$rows;$i++){
  5. //外层循环控制表格的行
  6. $table.="<tr>";
  7. //内层循环控制表格的列
  8. for($j=0; $j<$colunms; $j++){
  9. $table .="</td>中国</td>";
  10. }
  11. $table .="</tr>";
  12. }
  13. $table.="</table>";
  14. return $table;
  15. }
  16. echo createTable(2,3);
##通过用函数打包将上面代码以参数形式实现一个三行四列并且颜色是红色内容是为发的表格
  1. //默认传入的参数$bgColor="pink",$content="我".
  2. function createTable(int $rows,int $colunms,string $bgColor="pink",string $content="我"){
  3. $table="<table border='1' cellspacing='0' bgColor='{$bgColor}'>";
  4. for($i=0;$i<$rows;$i++){
  5. //外层循环控制表格的行
  6. $table.="<tr>";
  7. //内层循环控制表格的列
  8. for($j=0; $j<$colunms; $j++){
  9. $table .="</td>{$content}</td>";
  10. }
  11. $table .="</tr>";
  12. }
  13. $table.="</table>";
  14. return $table;
  15. }
  16. echo
  17. //用户相应传入的参数。
  18. createTable(3,4,'red','发');
总结函数的返回值,参数
  • 当函数在调用时不传参数或者少传参数的时都会使用默认值,如果用户传了参数会方式覆盖默认参数的现象,而且在传参数时要根据函数变量依次传入,否则会出错。
  • 参数是从左边向右边取值。
  • 函数调用时必选参数必须是实际参数。
    实例演绎回调函数,匿名函数的理解
    1. //引用参数
    2. function ref(&$arg){
    3. return $arg*=2;
    4. }
    5. $val=20;
    6. echo ref($val);//40
    7. echo $val;//40
    8. //结论:
    9. $val的内存储存区块相对地址导入到函数中了,在函数里面发生的任何变化,都会对父程序造成影响。
    1. //剩余参数适用于参数不固定
    2. //剩余参数用在参数列表中合并
    3. function add($a,$b,$c,$d){
    4. return $a+$b+$c+$;
    5. }
    6. add(1,2,3,6);
    7. //剩余参数用在函数的调用表达式中展开
    8. function test(...$arg){
    9. //array_sum()计算数组的和
    10. return array_sum($arg);
    11. $arr=[1,2,3,4,5];
    12. echo test(...$arr);//15
    1. //命名函数
    2. echo demo("小明");//小明
    3. function demo($name){
    4. return $name;
    5. }
    6. echo demo("小明");//小明
    7. //匿名函数
    8. echo $func("小红");匿名函数不能提前调用
    9. $func=function(){
    10. echo $name;
    11. }
    12. echo $func("小红");//小红
    13. //匿名函数通过use可以访问函数外部的自由变量。
    14. $userName="admin";
    15. $email="1232@qq.com";
    16. $text=function()use($userName,$email){
    17. return sprintf($userName,$email);
    18. };
    19. //匿名函数的调用
    20. echo $text();//admin,1232@qq.com
    21. $text=function($myName,$myEmail)use($userName,$email){
    22. $name=$myName;
    23. $email=$myEmail;
    24. };
    25. $text('yin','jjkkl@qq.com');
    26. echo $userName//yin

    总结

  • 声明函数属于全局函数全局可以访问
  • 匿名函数有作用域不能在作用域之外访问调用了之后才能访问。
  • 匿名函数允许一个变量来保存
    1. //回调函数:将函数作为函数返回值调用。
    2. function demo1($site){
    3. return function($color)use($site){
    4. return function (){
    5. return spintf('<h1 style="color:red;"></h1>',$color,$site);
    6. };
    7. };
    8. }
    9. //调用demo1
    10. $res=demo1("php.cn");
    11. //调用demo1里面的参数
    12. echo $res('red');
Correcting teacher:灭绝师太灭绝师太

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