PHP - 函式



與大多數程式語言一樣,PHP 中的函式是由組織好的、可重用的程式碼塊組成,用於執行單個相關的操作。函式為您的應用程式提供了更好的模組化和高度的程式碼重用性。

PHP 透過定義獨立的可重用函式塊來安排處理邏輯,從而支援結構化程式設計方法。這種方法的主要優點是程式碼易於理解、開發和維護。

下圖顯示瞭如何將工資計算過程逐步分解為獨立且可重用的函式。

PHP Functions

函式型別

您已經看到了許多函式,例如 **fopen()** 和 **fread()** 等。它們是內建函式,但PHP也允許您建立自己的函式。PHP 中有兩種型別的函式:

  • **內建函式** - PHP 的標準庫包含大量用於字串處理、檔案 I/O、數學計算等的內建函式。

  • **使用者定義函式** - 您也可以根據程式設計邏輯的要求建立使用者定義函式。

可以透過傳遞所需資料(稱為 **引數** 或 **引數**)從任何其他函式呼叫函式。被呼叫的函式將其結果返回給呼叫環境。

您應該清楚以下兩點:

  • 建立 PHP 函式

  • 呼叫 PHP 函式

事實上,您幾乎不需要建立自己的 PHP 函式,因為已經為不同領域建立了超過 1000 個內建庫函式,您只需要根據您的需求呼叫它們。

請參考 PHP 函式參考 以獲取完整的實用函式集。

PHP 中的使用者定義函式

建立您自己的 PHP 函式非常容易。讓我們從一個簡單的例子開始,然後我們將詳細解釋它的工作原理。假設您想建立一個 PHP 函式,當您呼叫它時,它將在您的瀏覽器上簡單地寫一條訊息。

示例

在這個例子中,我們建立了一個名為 writeMessage() 的函式,然後呼叫它來列印一條簡單的訊息:

<?php

   /* Defining a PHP Function */
   function writeMessage() {
      echo "You are really a nice person, Have a nice time!";
   }

   /* Calling a PHP Function */
   writeMessage();
   
?>

它將產生以下 **輸出**:

You are really a nice person, Have a nice time!

在 PHP 中建立函式

現在讓我們詳細瞭解這個過程。第一步是編寫一個函式,然後您可以根據需要多次呼叫它。要建立一個新的 **函式**,請使用 function 關鍵字,後跟您要使用的函式名稱。在名稱前面加上一個括號,它可能包含也可能不包含引數。後面是一個用花括號分隔的語句塊。此函式塊包含每次呼叫函式時要執行的語句。

定義函式的一般 **語法** 如下:

function foo($arg_1, $arg_2, $arg_n) {
   statements;
   return $retval;
}

如果函式旨在將某些結果返回給呼叫環境,則函式塊中的最後一條語句應該是一個 **return** 語句。不必一定要有 **return** 語句,因為即使沒有它,程式流程也會返回呼叫方,儘管它不帶任何值。

任何有效的 PHP 程式碼都可能出現在函式內部,甚至包括其他函式和類定義。函式的名稱必須遵循與變數名稱相同的規則。它應該以字母或下劃線開頭,後面可以跟任意數量的字母、數字或下劃線。

這是一個簡單的 PHP 函式。每當被呼叫時,它都應該顯示訊息“Hello World”。

function sayhello() {
   echo "Hello World";
}

在 PHP 中呼叫函式

定義函式後,可以從 PHP 程式碼中的任何位置多次呼叫它。請注意,函式不會自動呼叫。要呼叫函式,請在語句中使用其名稱;函式名稱後跟分號。

<?php
   # define a function
   function sayhello(){
      echo "Hello World";
   }
   # calling the function
   sayhello();
?>

它將產生以下 **輸出**:

Hello World

假設上述指令碼“hello.php”位於 PHP 伺服器的文件根目錄資料夾中,請開啟瀏覽器並輸入 URL 為 **https:///hello.php**。您應該在瀏覽器視窗中看到“Hello World”訊息。

在這個例子中,函式是在沒有任何引數或返回值的情況下定義的。在接下來的章節中,我們將學習如何定義和傳遞引數,以及如何使函式返回值。此外,還將詳細解釋 PHP 函式的一些高階特性,例如遞迴函式、按值呼叫函式與按引用呼叫函式等。

廣告