5.PHP的函数应用

定义函数

  • 定义格式

image-20201026155208085

  • 以下代码定义一个生成表格的函数table,并接受三个参数
<?php
    /*
            $tr_number  int 设置表格行数
            $td_number  int 设置表格列数
            $number     int 设置起始数值
        */
    function table($tr_number,$td_number,$number){
    echo "<table align='center' border='1' width=60>";
    $td_number_1=$td_number;
    while ($tr_number) {
        $td_number_1=$td_number;
        echo "<tr>";
        while($td_number_1){  #打印每行td的循环
            echo "<td>";
            echo $number;
            echo "</td>";
            $number++;
            $td_number_1--;
        }
        echo "</tr>";       
        $tr_number--;
    }

    echo "</table>";
}

table(2,3,2);       #调用函数
?>

运行结果:

image-20201026155813285

  • php的函数调用,可以在函数的声明之前,也可以在函数的声明之后进行调用

  • 要接受函数的返回值,可以使用return 语句来进行

函数变量的范围

  • 局部变量:局部变量也称为内部变量,是在函数内部声明的变量,其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。

  • 全局变量:

    • 在PHP中,声明的全局变量,函数是不能直接使用的,在函数内部直接使用全局变量,相当于重新声明了一个变量,如果要想使用全局变量,就必要要加上global
      
    • 除此之外,还可以使用$GLOBAL数组来进行访问,$GLOBALS是一个超全局变量

声明各种应用形式的函数

  • 常规参数的函数(强制类型)

image-20201026162803045

  • 伪类型参数的类型

image-20201026162832687

  • 引用参数的函数
<?php
    $a=100;

function test_1($a){
    $a=200;
}

function test_2(&$a){   #设置参数引用,只能传递变量,不能传递值
    $a=200;
}

test_1($a);
echo $a ."<br/>";   #没有改变值
test_2($a);         
echo $a;            #值被改变了

// 运行结果:
// 100
// 200

?>
  • 默认参数的函数
  1. 默认参数必须要放在非默认参数的右侧,否则可能会出错
    <?php
        function test($name,$age=32){
            echo $name."有".$age."岁了";
        }

        test("张三");     #张三有32岁了
        test("李四",20);  #李四有20岁了
    ?>
  • 可变参数的函数

    • func_get_args()函数,它将所有传递给脚本函数的参数当做一个数组返回
    • func_num_args()函数,返回参数的总数
    • func_get_arg()函数接受一个数字参数,返回指定的参数。
    
      ";
              }
          }
    
          more_args("hello","world");
    
          // 输出结果:
          // 第0个参数:hello
          // 第1个参数:world
      ?>
  • 回调函数

  1. 变量函数,

变量函数也称为可变函数。如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且将尝试执行它。例如,声明一个函数test(),将函数名称字符串“test”赋给变量 $demo。如果直接打印$demo变量,输岀的值一定是字符串“test”,但如果在 $demo变量后加上圆括号“ $demo()”,则为调用对应$demo变量值“test”的函数。这样就可以将不同的函数名称赋给同一个变量,再通过变量去调用这个函数,很类似于面向对象中多态性的应用。

    <?php
        function test($a,$b){
            echo $a+$b;
        }

        $c="test";      #将函数名称做为字符串赋值给变量c

        $c(2,3);        #通过变量来调用函数

        // 运行结果:
        // 5

    ?>
  1. 使用变量函数声明和应用回调函数
    <?php
        function test($fun){
            for ($i=10;$i<=30;$i++){
                if ($fun($i)){
                    continue;
                }
                echo $i." ";
            }
        }

        function three($i){
            return $i%3==0;
        }

        function two($i){
            return $i!=strrev($i);
        }

        test("three");      #输出10-30非3的倍数
        echo "<br/>";       
        test("two");        #输出10-30的回文数

        // 运行结果:
        // 10 11 13 14 16 17 19 20 22 23 25 26 28 29
        // 11 22 

    ?>
  • 使用自定义函数库
  1. require()包括并运行指定文件,库文件只处理了一次(实际上,相当于文件内容替换了require())
  2. include()包括并运行指定文件,与require()不同的是,include()执行文件时,每次都要进行读取和评估
  3. include_once()与require_once(),与上面两个语句区别在于如果该文件中的代码已经被包括了,则不会再次包括,用于确保文件只被包括一次
© 版权声明
THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
四曲的头像-四曲博客

昵称

取消
昵称表情代码图片