選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

PHP 教程

PHP HOME PHP 簡介 PHP 安裝 PHP 語法 PHP 註釋 PHP 變數 PHP Echo / Print PHP 資料型別 PHP 字串 PHP 數字 PHP 型別轉換 PHP 數學 PHP 常量 PHP 魔術常量 PHP 運算子 PHP If...Else...Elseif PHP Switch PHP 迴圈 PHP 函式 PHP 陣列 PHP 超全域性變數 PHP 正則表示式

PHP 表單

PHP 表單處理 PHP 表單驗證 PHP 表單必填項 PHP 表單 URL/電子郵件 PHP 表單完成

PHP 高階

PHP 日期和時間 PHP Include PHP 檔案處理 PHP 檔案開啟/讀取 PHP 檔案建立/寫入 PHP 檔案上傳 PHP Cookies PHP Sessions PHP 過濾器 PHP 高階過濾器 PHP 回撥函式 PHP JSON PHP 異常

PHP OOP

PHP 什麼是 OOP PHP 類/物件 PHP 建構函式 PHP 解構函式 PHP 訪問修飾符 PHP 繼承 PHP 常量 PHP 抽象類 PHP 介面 PHP Trait PHP 靜態方法 PHP 靜態屬性 PHP 名稱空間 PHP 可迭代物件

MySQL 資料庫

MySQL 資料庫 MySQL 連線 MySQL 建立資料庫 MySQL 建立表 MySQL 插入資料 MySQL 獲取最後 ID MySQL 插入多條資料 MySQL 預處理 MySQL 查詢資料 MySQL Where MySQL Order By MySQL 刪除資料 MySQL 更新資料 MySQL 限制資料

PHP XML

PHP XML 解析器 PHP SimpleXML 解析器 PHP SimpleXML - 獲取 PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX 簡介 AJAX PHP AJAX 資料庫 AJAX XML AJAX 即時搜尋 AJAX 投票

PHP 示例

PHP 示例 PHP 編譯器 PHP 測驗 PHP 練習 PHP 伺服器 PHP 證書

PHP 參考手冊

PHP 概述 PHP 陣列 PHP 日曆 PHP 日期 PHP 目錄 PHP 錯誤 PHP 異常 PHP 檔案系統 PHP 過濾器 PHP FTP PHP JSON PHP 關鍵詞 PHP Libxml PHP 郵件 PHP 數學 PHP 雜項 PHP MySQLi PHP 網路 PHP 輸出控制 PHP 正則表示式 PHP SimpleXML PHP Stream PHP String PHP 變數處理 PHP XML 解析器 PHP 壓縮 PHP 時區

PHP 函式


PHP 的真正強大之處在於其函式。

PHP 擁有超過 1000 個內建函式,此外您還可以建立自己的自定義函式。


PHP 內建函式

PHP 擁有超過 1000 個內建函式,可以直接在指令碼中呼叫,以執行特定任務。

請檢視我們的 PHP 參考,瞭解 PHP 內建函式的 完整概述


PHP 使用者定義函式

除了內建的 PHP 函式外,還可以建立自己的函式。

  • 函式是一組可以重複使用的語句塊。
  • 函式在頁面載入時不會自動執行。
  • 函式將透過呼叫該函式來執行。

建立函式

使用者定義函式宣告以關鍵字 function 開頭,後跟函式名稱

示例

function myMessage() {
  echo "Hello world!";
}

注意: 函式名稱必須以字母或下劃線開頭。函式名稱不區分大小寫。

提示: 為函式起一個能反映其功能的名稱!


呼叫函式

要呼叫函式,只需寫出其名稱,後跟括號 ()

示例

function myMessage() {
  echo "Hello world!";
}

myMessage();
自己動手試一試 »

在我們的示例中,我們建立了一個名為 myMessage() 的函式。

開頭的花括號 { 表示函式程式碼的開始,結尾的花括號 } 表示函式程式碼的結束。

該函式輸出“Hello world!”。



PHP 函式引數

資訊可以透過引數傳遞給函式。引數就像變數一樣。

引數在函式名之後、括號內指定。您可以新增任意數量的引數,只需用逗號分隔即可。

下面的示例有一個帶有一個引數 ($fname) 的函式。當呼叫 familyName() 函式時,我們也會傳遞一個名字,例如 ("Jani"),這個名字在函式內部使用,輸出多個不同的名字,但姓氏相同。

示例

function familyName($fname) {
  echo "$fname Refsnes.<br>";
}

familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
自己動手試一試 »

下面的示例有一個帶有兩個引數 ($fname, $year) 的函式

示例

function familyName($fname, $year) {
  echo "$fname Refsnes. Born in $year <br>";
}

familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
自己動手試一試 »

PHP 預設引數值

下面的示例演示瞭如何使用預設引數。如果我們呼叫 setHeight() 函式而沒有傳遞引數,它將使用預設值作為引數。

示例

function setHeight($minheight = 50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
自己動手試一試 »

PHP 函式 - 返回值

要讓函式返回值,請使用 return 語句。

示例

function sum($x, $y) {
  $z = $x + $y;
  return $z;
}

echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
自己動手試一試 »

透過引用傳遞引數

在 PHP 中,引數通常是按值傳遞的,這意味著函式中使用的是值的副本,並且傳遞到函式中的變數不能被更改。

當函式引數透過引用傳遞時,對引數的更改也會更改傳入的變數。要將函式引數轉換為引用,請使用 & 運算子。

示例

使用按引用傳遞的引數更新變數

function add_five(&$value) {
  $value += 5;
}

$num = 2;
add_five($num);
echo $num;
自己動手試一試 »

可變數量的引數

透過在函式引數前使用 ... 運算子,函式可以接受任意數量的引數。這也稱為可變引數函式。

可變引數會變成一個數組。

示例

一個不知道會接收多少個引數的函式

function sumMyNumbers(...$x) {
  $n = 0;
  $len = count($x);
  for($i = 0; $i < $len; $i++) {
    $n += $x[$i];
  }
  return $n;
}

$a = sumMyNumbers(5, 2, 6, 2, 7, 7);
echo $a;
自己動手試一試 »

您只能有一個可變長度的引數,並且它必須是最後一個引數。

示例

可變引數必須是最後一個引數

function myFamily($lastname, ...$firstname) {
  txt = "";
  $len = count($firstname);
  for($i = 0; $i < $len; $i++) {
    $txt = $txt."Hi, $firstname[$i] $lastname.<br>";
  }
  return $txt;
}

$a = myFamily("Doe", "Jane", "John", "Joey");
echo $a;
自己動手試一試 »

如果可變引數不是最後一個引數,您將收到一個錯誤。

示例

在兩個引數中的第一個引數上使用 ... 運算子,將引發一個錯誤

function myFamily(...$firstname, $lastname) {
  $txt = "";
  $len = count($firstname);
  for($i = 0; $i < $len; $i++) {
    $txt = $txt."Hi, $firstname[$i] $lastname.<br>";
  }
  return $txt;
}

$a = myFamily("Doe", "Jane", "John", "Joey");
echo $a;
自己動手試一試 »

PHP 是一種弱型別語言

在上面的示例中,請注意,我們不必告訴 PHP 變數是什麼資料型別。

PHP 會根據變數的值自動為其關聯資料型別。由於資料型別不是嚴格定義的,您可以執行諸如將字串新增到整數中而不會導致錯誤的操作。

在 PHP 7 中,添加了型別宣告。這使我們可以在宣告函式時指定預期的資料型別,並透過新增 strict 宣告,如果資料型別不匹配,它將丟擲一個“致命錯誤”。

在下面的示例中,我們嘗試在不使用 strict 的情況下將數字和字串都發送到函式中

示例

function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and it will return 10
自己動手試一試 »

要指定 strict,我們需要設定 declare(strict_types=1);。這必須放在 PHP 檔案的第一行。

在下面的示例中,我們嘗試將數字和字串都發送到函式中,但在這裡我們添加了 strict 宣告

示例

<?php declare(strict_types=1); // strict requirement

function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is enabled and "5 days" is not an integer, an error will be thrown
?>
自己動手試一試 »

strict 宣告強制事物按照預期方式使用。


PHP 返回型別宣告

PHP 7 還支援 return 語句的型別宣告。與函式引數的型別宣告一樣,透過啟用嚴格要求,它將在型別不匹配時丟擲“致命錯誤”。

要為函式返回值宣告型別,請在宣告函式時,在左花括號 ( { ) 前新增一個冒號 ( : ) 和型別。

在下面的示例中,我們為函式指定了返回型別

示例

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
  return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
自己動手試一試 »

您可以指定與引數型別不同的返回型別,但請確保返回值的型別正確

示例

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
  return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
自己動手試一試 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援