PHP函數

PHP 函數

PHP 的真正威力源自於它的函數。

什麼是函數

我們在先前的學習中已經使用過大量的函數:var_dump、sprintf以及非常多的數組函數,他們的特徵是什麼?

•       都可以執行一些特定的功能

•       有特殊的名稱

•      函數都會有回傳值,即使沒有也會執行特定的運算

•       不需要知道函數內部的實作邏輯

函數存在於大多數的程式語言中,它們被用來分隔哪些能夠完成獨立明確任務的程式碼。

函數名稱必須以字母或底線開頭,後面跟著字母、數字或底線,另外函數名稱是大小寫不敏感的

什麼是函數參數我們可以把函數想像成一個榨汁機,參數就好比是我們投放進去的水果,而函數中執行的程式碼就好比是攪拌機的攪拌

參數不同,函數傳回的結果也不同,就像投放了橘子後不會出蘋果汁一個道理。函數也可以接受多個參數,就好比是混合果汁

函數只留給我們函數名來調用,而我們無需了解函數裡的程式碼是如何定義的,同樣,我們也不需要了解榨汁機裡的工作原理

PHP 內建函數在PHP 中,提供了超過1000 個內建的函數。

如需查看所有陣列函數的完整參考手冊和實例,請造訪我們的 PHP 參考手冊。

 

PHP 函數在本章中,我們將為您講解如何建立自己的函數。

如要在頁面載入時執行腳本,您可以把它放到函數裡。

函數是透過呼叫函數來執行的。

你可以在頁面的任何位置呼叫函數。

建立 PHP 函數函數是透過呼叫函數來執行的。

語法

function 函數名稱(參數1, 參數2, 參數3 …) {

    程式碼/語句;

#    return 回傳值;

}

PHP的函數不一定要明確保留return語句,如果沒有return,函數會自動回傳null

PHP 函數準則:

·函數的名稱應該提示它的功能

·         函數名稱以字母或底線開頭(不能以數字開頭)

實例

一個簡單的函數,在其被呼叫時能輸出我的名稱:

<html>
 <body>
 <?php
 function writeName()
 {
 echo "Kai Jim Refsnes";
 }
 echo "My name is ";
 writeName();
 ?>
 </body>
 </html>

 

PHP 函數 - 新增參數

為了給函數增加更多的功能,我們可以加入參數。參數類似變數。

參數就在函數名稱後面有一個括號內指定。

實例1

下面的實例會輸出不同的名字,但姓氏是相同的:

<html>
 <body>
 <?php
 function writeName($fname)
 {
 echo $fname . " Refsnes.<br>";
 }
 echo "My name is ";
 writeName("Kai Jim");
 echo "My sister's name is ";
 writeName("Hege");
 echo "My brother's name is ";
 writeName("Stale");
 ?>
 
 </body>
 </html>


實例2

下面的函數有兩個參數:

<html>
 <body>
 <?php
 function writeName($fname,$punctuation)
 {
 echo $fname . " Refsnes" . $punctuation . "<br>";
 }
 echo "My name is ";
 writeName("Kai Jim",".");
 echo "My sister's name is ";
 writeName("Hege","!");
 echo "My brother's name is ";
 writeName("Ståle","?");
 ?>
 </body>
 </html>


PHP 函數- 傳回值

如需讓函數傳回一個值,請使用return 語句。

實例

<html>
 <body>
 <?php
 function add($x,$y)
 {
 $total=$x+$y;
 return $total;
 }
 echo "1 + 16 = " . add(1,16);
 ?>
 </body>
 </html>

 

自訂函數

我們之前呼叫的都是PHP內建的函數。但是,程式語言真正的功能是透過創建自己的函數來實現的

PHP提供的函數大多是基礎的功能,譬如操作數組、存取資料庫、讀寫檔案等

但是,在現實專案中,PHP函數是無法滿足我們的需求的,我們找不到可以用來處理合約的函數、沒有計算出勤率的函數、沒有列印資料表格的函數

幸運的是,我們不僅限於PHP內建函數,我們可以編寫自己的函數來完成任何任務,這就是自訂函數。可以在自訂函數中使用PHP的內建函數,下面我們來了解函數的基本結構.

 

 

一次函數

在電腦中,函數最早是用來模擬各種數學函數的,看下面的程式碼

function linear($x) {
    $k = 5 ;
    $b = 3;
    $y = $k * $x + $b;
    return $y;
}#o

#$value = linear($value);


此函數可以解一次方程式

 

•       函數為黑盒,且linear內部的任何變數外部都無法存取

•       同樣,函數內部也無法存取外部的變數

•       外部傳遞資料給函數使用參數

•       函數傳回資料給外部使用返回值

#函數的預設值

回顧函數的語法,只要稍作修改,給第二個參數後面加上等號,並且賦值,則參數2就有了預設值,函數呼叫時只需要傳遞一個參數function 函數名稱(參數1, 參數2 = 1) {

         程式碼/語句;

         return 傳回值;

}

函數名稱(1);此時函數體內參數2的值為1(預設值)

函數名稱(1, 2);此時函數體內參數2的值是2(傳遞的值)

 

預設值的作用

在實際的開發中,我們常用到它,為什麼?

假設有一個系統函數,已經使用了很久,到處都有調用它的地方,如果需要添加新的邏輯,很有可能需要給它添加一個新的參數

如果新增了新參數,這時函數的定義改變了,我們需要找到每個呼叫的地方去修改並增加這個參數

如果給個預設值呢?預設值用來控制關閉新的邏輯,這樣原先的程式碼不用做任何修改也不會執行到新的邏輯,而新的程式碼,可以顯示的指定參數開啟新的邏輯 


繼續學習
||
<html> <body> <?php function add($x,$y) { $total=$x+$y; return $total; } echo "1 + 16 = " . add(1,16); ?> </body> </html>
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!