Blogger Information
Blog 56
fans 1
comment 0
visits 62185
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php函数的声明以及使用
零龙
Original
1003 people have browsed it

php函数的声明以及使用

1. 函数的申明

  • 函数名是标识符之一,只能有字母数字下划线,开头不能是数字;
  • 函数名的命名,必须符合“小驼峰法则”FUNC(),func(),Func();
  • 函数名不区分大小写;
  • 函数名不能与已有函数同名,不能与内置函数名同名;
  • function_exists(“func”);用于检测函数是否已经声明;
  • 注意传入的函数名,必须是字符串格式,返回结果为true/false;
    echo打印时,true为1,false不显示;

    php中变量的作用域

  1. 局部变量:声明在函数内部的变量,称为局部变量,只在函数内部使用,函数外如需使用,需在函数中使用return关键字返回;
  2. 全局变量:声明在函数外部的变量,称为全局变量;
  3. 代码复用的重要手段
  4. 数据复用的重要手段
    1. function Fun(参数、参数、参数.....)
    2. {
    3. 函数体可执行的代码;
    4. }
    无参函数示例:
  1. function Fun()
  2. {
  3. echo "欢迎您来到php函数的世界!";
  4. }
  • 示例中定义了Fun()函数、在函数体内输出了字符串。
    有参函数示例:
  1. function kd(float $zl,int $mdd):float
  2. {
  3. $zl = ceil($zl);
  4. switch($mdd)
  5. {
  6. case 1:
  7. $qb = 10;
  8. $xz = 5;
  9. break;
  10. case 2;
  11. $qb = 10;
  12. $xz = 8;
  13. break;
  14. case 3;
  15. $qb = 15;
  16. $xz = 10;
  17. break;
  18. }
  19. $yf = $qb + $xz*($zl-1);
  20. return $yf;
  21. }
  22. echo kd(7.2,2);
  • 在示例中使用函数和switch得到快件收费标准,在调用时传了两个参数到函数,一个重量,一个目的的。获取快件运输费用。

2. 函数的调用

  1. <?php
  2. function Fun()
  3. {
  4. echo "欢迎您来到php函数的世界!";
  5. }
  6. echo "echo调用:";
  7. echo fun();
  8. echo "<br>";
  9. $hello=Fun();
  10. echo $hello;
  • 示例图

    3. 函数的类型

  • 自定义函数。
  • 系统函数。
  • 可变函数。
  • 匿名函数。
  • 父级函数。

示例

  1. //可变函数
  2. //对自定义函数的函数名赋值后调用。
  3. echo "<b>可变函数</b>";
  4. echo "<br>";
  5. $f = 'yf';
  6. echo "您购买的活动实付金额是:¥".$f(6.5,1.3);
  7. echo "<hr>";
  8. echo "<b>匿名函数</b>";
  9. echo "<br>";
  10. $yh = 0.8; //使用use调用外面变量
  11. $func = function(float $zl,float $dj) use ($yh):float
  12. {
  13. $je = $zl * $dj;
  14. echo "您购买的金额是:¥".$je."<br>";
  15. if($zl>5)
  16. {
  17. $je = $je * $yh;
  18. }
  19. return $je;
  20. }; //以为是给变量赋值所有这里必须要打;
  21. echo "您购买的活动实付金额是:¥".$func(6.5,1.3);
  22. echo "<hr>";
  23. echo "<b>父作用域函数</b>";
  24. echo "<br>";
  25. $j = function ($yh)
  26. {
  27. $func = function(float $zl,float $dj) use ($yh):float
  28. {
  29. $je = $zl * $dj;
  30. echo "您购买的金额是:¥".$je."<br>";
  31. if($zl>5)
  32. {
  33. $je = $je * $yh;
  34. }
  35. return $je;
  36. };
  37. return $func;
  38. };
  39. echo "您购买的活动实付金额是:¥".$j(0.7)(6.5,2.1);

对函数的记住类型进行的编写,加深对函数的认识。
示例图

4. 函数的返回值

  • 函数必须要有返回值
  • 函数只能返回单一的值
  • 函数可拼装返回字符串返回
  • 函数可通过数组的方式返回
  • 函数可通过josn返回
  • 函数可通过序列化返回

1.函数必须有返回值:

  1. function a()
  2. {
  3. }
  4. echo a();
  • 一个空的函数也有返回值NULL

2.函数返回单一的值

  1. function a()
  2. {
  3. echo "函数返回值";
  4. }
  5. echo a();
  6. echo "<br>";
  7. function b(int $c):int
  8. {
  9. $c = $c/2;
  10. return $c;
  11. }
  12. echo b(100);
  • 未设参数的函数返回值是函数本身。
  • 通过return返回一个整数。可以通过字符串返回多个值。

3.函数字符串返回

  1. function c():string
  2. {
  3. $lx = "利息";
  4. $bj = "本金";
  5. $yh = "月还";
  6. return $bj.",".$lx.",".$yh;
  7. }
  8. echo c();
  • return 返回的值用.链接后变成一个字符串返回。

4.函数数组返回

  1. function d(float $dk,int $n,float $l):array
  2. {
  3. $nx = $dk * $l * $n;
  4. $xh = $dk + $nx;
  5. $yh = $xh / ($n * 12);
  6. return ["nx"=>$nx,"xh"=>$xh,"yh"=>$yh];
  7. }
  8. $myh=(d(400000,20,0.047)['yh']);
  9. $myh =number_format($myh,2);
  10. echo $myh;
  • 传入字符串参数,通过数组返回计算出来的值。

5.通过josn返回

  1. function e():string
  2. {
  3. $gj ="中国";
  4. $sf ="贵州省";
  5. $cs ="贵阳市";
  6. return json_encode(["gj"=>$gj,"sf"=>$sf,"cs"=>$cs]);
  7. }
  8. echo e();
  9. echo "<br>";
  10. $bb=json_decode(e());
  11. foreach($bb as $k => $value)
  12. {
  13. echo $k ."=>". $value;
  14. }
  • 将函数内的值用JSON返回,可通过foreach输处返回值

6.通过序列化返回

  1. function f()
  2. {
  3. $gj ="中国";
  4. $sf ="贵州省";
  5. $cs ="贵阳市";
  6. return serialize(["gj"=>$gj,"sf"=>$sf,"cs"=>$cs]);
  7. }
  8. echo f();
  9. echo "<br>";
  10. $dm = unserialize(f());
  11. foreach($dm as $key => $value)
  12. {
  13. echo $key."=>".$value;
  14. }
  • 通过serialize将返回数组,使用unserialize过滤,在使用foreach输出返回数据

函数返回示例图

5. 函数的参数

  • 值传参
  1. function a(int $b): int
  2. {
  3. $b= $b*2;
  4. return $b;
  5. }
  6. echo a(15);
  • 引用传参
  1. function c(float $d): float
  2. {
  3. $d = $d * 3;
  4. return $d;
  5. }
  6. $e = 12;
  7. echo c($e);
  • 默认参数
  1. //100内能整除4的数的和
  2. $d = 0;
  3. function js(int $a,int $b=4):int
  4. {
  5. for($i=1;$i<=$a;$i++)
  6. {
  7. if($i % $b == 0)
  8. {
  9. global $d;
  10. $d = $d + $i;
  11. }
  12. }
  13. return $d;
  14. }
  15. echo js(100);
  • 剩余参数
  1. function sy(...$sz)
  2. {
  3. return $sz;
  4. }
  5. $res =sy(1,2,3,4,5,6,7,8,9,10);
  6. $sy1 = [1,2,3,4,5,6,7,8,9,10];
  7. //print_r($res);
  8. echo "<br>";
  9. $res1 = sy(...$sy1);
  10. print_r($res1);
  • 两种方法对剩余参数进行调用,关键使用…来替换参数。

  • 没有传送的参数,必须写到传送参数的后面

6. 函数的命名空间

  • 同常数一样namespace,全局不能出现相同的函数名,需要必须使用命名空间来定义。

示例

  1. <?php
  2. namespace de {
  3. function demo1()
  4. {
  5. return __FUNCTION__;
  6. }
  7. }
  8. namespace de1{
  9. function demo1() {
  10. return __FUNCTION__;
  11. }
  12. }
  13. namespace{
  14. echo de\demo1();
  15. echo "<br>";
  16. echo de1\demo1();
  17. }

对两个命名空间的访问,

Correcting teacher:GuanhuiGuanhui

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