介紹什麼是php自訂函數之前我們先來介紹下什麼是函數.
函數就是有一定功能的一些語句組織在一起的一種形式,定義函數的目的是將程式按功能分塊,方便程式的使用、管理、閱讀和調試。
函數有兩種:
一種是別人寫好的或系統內部提供的函數,這種你只要知道這個函數幹什麼用,自己認識會使用就行了,不用深究函數裡面是怎麼實現的,比如使用過的各種字串函數,數組函數之類,有如下的一些特點:
1. 都可以執行一些特定的功能
2. 都有特殊的名稱
3. 都有或多或少的參數
4. 大多數函數都會有傳回值,即使沒有也會執行特定的操作
5. 不需要知道函數內部的實現邏輯
另一種函數是自己定義的,用來實現自己的獨特需求。可能概念會比較抽象不好理解,我們可以把函數想象成一個榨汁機,參數就好比是我們投放進去的水果,而函數中執行的代碼就好比是攪拌機的攪動。參數不同,函數返回的結果也不同,就像投放了橙子後不會出蘋果汁一個道理。函數也可以接受多個參數,就好比是混合果汁。
函數只留給我們函數名來調用,而我們無需瞭解函數裡的代碼是如何定義的,同樣,我們也不需要瞭解榨汁機裡的工作原理。函數存在於大多數的程式語言中,它們被用於分隔哪些能夠完成獨立明確任務的代碼。函數名稱必須以字母或者底線開頭,後面跟隨字母、數字或者底線,另外函數名是大小寫不敏感的。
所以函數的定義就是一個唄命名的、獨立的程式碼片段,它執行特定的任務,並可能給調用它的程式返回一個值。PHP的模組化程式結構都是通過函數或者對象來實現的,函數則是將複雜的PHP程式分為若干個功能模組,每個模組都編寫成一個PHP函數,然後通過在指令碼中調用函數,以及在函數中調用函數來實現一些大型的PHP指令碼編寫。
一般情況下,都是使用PHP的內建的函數。但是,程式設計語言真正的功能是通過建立自己的函數來實現的,PHP提供的函數大多是基礎的功能,譬如運算元組、訪問資料庫、讀寫檔案等。但是,現實項目中,PHP函數是無法滿足我們的需求的,我們找不到可以用來處理合約的函數、沒有計算出勤率的函數、沒有列印資料表格的函數。
在開發過程中,經常需要重複某種操作處理,如資料查詢、字元操作等等,如果每個模組的操作都要重新輸入一次代碼,不僅會使程式員非常的頭疼,而且對於代碼的後期維護及運行效果也有著很大的影響。幸運的是,我們並不只局限於PHP內建函數,我們可以編寫自己的函數來完成任何任務,這就是自訂函數。
在編寫函數時首先要明確你希望這個函數用來做什麼,達到什麼目的,要實現什麼功能,知道這些以後,編寫的時候思路才會清晰,代碼寫起來也不會感覺太困難。 在php中除了已經提供給朋友們可以直接拿來使用的數以千計的系統函數,還可以根據自己的模組需求來建立自訂的函數。
所謂的系統函數就是在php中提供的可以直接使用的函數,其中的每一個系統函數都是一個完整的可以完成指定任務的程式碼片段。多學會其中的一個系統函數,就多掌握一個php功能。在開發過程中,一些常用的功能都可以藉助調用系統函數來完成的。如果某些功能模組在php中沒有提供系統函數,就需要自己定義函數。完成同樣的任務,一般使用系統函數的執行效率會比自訂函數高一些,但兩種函數在程式中的調用方式是沒有明顯的區別的。
php自訂函數有如下的優點:
a. 可以讓程式重新使用
b. 提高代碼的可維護性
c. 提高開發效率
d. 可靠性大大加強
e. 控製程序設計的複雜性
下面是一個簡單的php自訂函數輸出例子
<?php function pr(){ echo "這是個自訂函數"; } pr();?>
其輸出結果:這是個自訂函數