2021年3月12日 星期五

PHP 函數基本應用

設定目標:
  • 了解 PHP 函數宣告與使用方式

PHP 函數宣告與呼叫方式
  1. 函數的宣告
    • 函數的作用:將功能相同的程式碼提出,以減少撰寫相同功能的程式碼
    • 使用方式:
      // 有數值需要傳遞時,需要設定參數
      // 若無傳遞數值的必要時,可不用設定參數
      function 函數名稱 (參數1,參數2,.....){
          需要執行的程式;
      
          //無需將執行結果傳出時,可以不用寫回傳值
          return 回傳值;
      }
      
    • 範例 : ex5_1.php
      <?php
        // 顯示名字
        function name(){
            echo "Peter";
        }
      
        // 計算成績等級
        function score($i) {
            $j = "F";
            $level = intval($i / 10);
            switch ($level){
                case 10:
                case 9:
                  $j = "A";
                  break;
                case 8:
                  $j = "B";
                  break;
                case 7:
                  $j = "C";
                  break;
                case 6:
                  $j = "D";
                  break;
                default:
                  $j = "E";
            }
            return $j;
        }
      
        echo name();
        $backscore = score(85);
        echo " 成績等級:$backscore";
      ?>
      
  2. 可變長度引數的使用
    • 若傳遞進入函數的參數個數不確定,可以使用可變長度引數的參數設定
    • 語法格式 :
      //重點在於那個「...」
      function 函數名稱 (...$參數名稱){
          需要執行的程式碼;
          return 回傳值;
      }
      
    • 範例 : ex5_2.php
      <?php
          function sum(...$numbers){
              $total = 0;
              foreach ($numbers as $i){
                  $total += $i;
              }
              return $total;
          }
      
          echo "總共是:".sum(1,3,5,7,9);
      ?>
      
  3. 遞迴函數
    • 基本精神 : 函數自己呼叫自己!
    • 範例 : ex5_3.php
      <?php
        function table99($i=2,$j=1){
          if ($j > 9){
            $i++;
            $j = 1;
            echo "
      "; } if ( $i <= 9 ){ printf("%d*%d=%d \t",$i,$j,($i*$j)); $j++; table99($i,$j); } } echo table99(); ?>
  4. 參數與回傳值宣告
    • PHP 7 之後,函數的參數與回傳值,可宣告資料型態
    • 範例 : ex5_4.php
      <?php
        function add(int $i,int $j):int{
          return ($i+$j);
        }
        echo add(3,5);
      ?>
      

本章練習:
  • 寫一支費式數列程式,計算前10個費式數列數值!