您好,登錄后才能下訂單哦!
PHP函數
在PHP中,函數是一段PHP代碼的集合,通過調用函數就可以執行一些任務或返回一些結果。PHP腳本通常是由主程序和函數構成的,這些函數不僅構成了PHP腳本的主要功能,也實現了程序代碼的結構化,方便他人閱讀。
函數可以分為用戶自定義函數和系統函數,用戶自定義函數是有用戶自行編寫實現的,功能也由用戶所編寫的代碼來決定。系統函數是PHP系統或擴展庫內置的函數,這些函數一般已經存在,直接調用即可。
一、用戶自定義函數
定義函數的格式如下:
function function_name([$parameter[,...]]) { //函數代碼段 }
定義函數的關鍵字為function。function_name是用戶自定義的函數名,通常這個函數名可以是以字母或下劃線開頭后面跟0個或多個字母、下劃線和數字的字符串,且不區分大小寫,需要注意的是,函數名不能與系統函數或用戶已經定義的函數重名。
$parameter為函數的參數,函數一般可以有0個或多個參數。當參數個數為0時,函數可以被直接調用,當參數個數不為0時,用戶在調用時就需要提供有效的參數。
在函數定義時,花括號內的代碼就是在調用函數時將會執行的代碼,這段代碼可以包括變量、表達式、流程控制語句,甚至是其他的函數或類定義。
二、參數的傳遞
一般情況下,參數是通過值來傳遞的。通過值傳遞參數不會應為函數內部參數值的變化而改變函數外部的值。
如果希望函數修改外部傳來的參數值,可以使用引用參數傳遞,只要在定義函數時在參數前面加上“&”。
函數還可以使用默認參數,在定義函數時給參數賦予默認值,參數的默認值必須是常量表達式,不能是變量、類成員或函數調用。在使用默認參數時,任何默認參數都要放在非默認參數的右側,否則函數可能不會按預期情況工作。
三、函數的作用域
在主程序定義的變量和在函數中定義的變量都是局部變量。在函數中定義的變量只能在函數內部使用。在主程序中定義的變量只能在主程序中使用,而不能在函數中使用。如果要使函數中的變量作用于函數外部,需要使用global關鍵字將變量聲明為全局變量。函數中的變量還可以聲明為靜態變量,函數被調用完后靜態變量的值并不丟失,在下次調用該函數時,靜態變量的值是上次調用函數時賦的值。
四、函數的返回值
函數聲明時,在函數代碼中使用return語句可以立即結束函數的運行,程序返回到調用該函數的下一條語句。
中斷函數執行并不是return語句最常用的功能,許多函數使用return語句返回一個值來與調用它們的代碼進行交互。函數的返回值可以是任何類型的值,包括列表和對象。
五、函數的調用
函數在聲明后就可以被調用。函數如果沒有返回值,調用時使用函數名即可。如果函數具有返回值,則可以將函數的返回值賦給一個變量。
六、遞歸函數
PHP支持遞歸函數,遞歸函數就是調用函數本身,可以實現循環的作用。
使用遞歸函數時一定要給出遞歸的終止條件,否則函數將一直執行下去直到服務器內存耗盡,或達到最大調用次數。
七、變量函數
PHP中有變量函數這個概念,在變量的后面加上一對小括號就構成了一個變量函數。
如果創建了變量函數,PHP腳本運行時將尋找與變量名相同的函數,如果函數存在,則嘗試執行該函數,如果不存在則產生一個錯誤。為防止這類錯誤,可以在調用變量函數之前使用PHP的function_exist()函數來判斷該變量函數是否存在。
變量函數不能用于語言結構,如echo()、print()、unset()、include()、require()、isset()。
八、系統函數
用戶自定義函數可以進行邏輯運算,而大部分的系統底層工作需要由系統函數來完成。
PHP系統了豐富的系統函數供用戶使用,包括文件系統函數、數組函數、字符串函數等。并不是所有的系統函數都能直接調用,有一些擴展的系統函數需要安裝擴展庫之后才能調用。當前運行環境支持的函數列表可以在phpinfo頁面查看。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。