溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP高級(jí)編程中關(guān)于PHP函數(shù)的介紹

發(fā)布時(shí)間:2020-07-26 16:50:04 來源:網(wǎng)絡(luò) 閱讀:567 作者:PXZ6603 欄目:web開發(fā)

PHP函數(shù)

在PHP中,函數(shù)是一段PHP代碼的集合,通過調(diào)用函數(shù)就可以執(zhí)行一些任務(wù)或返回一些結(jié)果。PHP腳本通常是由主程序和函數(shù)構(gòu)成的,這些函數(shù)不僅構(gòu)成了PHP腳本的主要功能,也實(shí)現(xiàn)了程序代碼的結(jié)構(gòu)化,方便他人閱讀。

函數(shù)可以分為用戶自定義函數(shù)和系統(tǒng)函數(shù),用戶自定義函數(shù)是有用戶自行編寫實(shí)現(xiàn)的,功能也由用戶所編寫的代碼來決定。系統(tǒng)函數(shù)是PHP系統(tǒng)或擴(kuò)展庫(kù)內(nèi)置的函數(shù),這些函數(shù)一般已經(jīng)存在,直接調(diào)用即可。

一、用戶自定義函數(shù)

定義函數(shù)的格式如下:

function function_name([$parameter[,...]])
{
    //函數(shù)代碼段
}

定義函數(shù)的關(guān)鍵字為function。function_name是用戶自定義的函數(shù)名,通常這個(gè)函數(shù)名可以是以字母或下劃線開頭后面跟0個(gè)或多個(gè)字母、下劃線和數(shù)字的字符串,且不區(qū)分大小寫,需要注意的是,函數(shù)名不能與系統(tǒng)函數(shù)或用戶已經(jīng)定義的函數(shù)重名。

$parameter為函數(shù)的參數(shù),函數(shù)一般可以有0個(gè)或多個(gè)參數(shù)。當(dāng)參數(shù)個(gè)數(shù)為0時(shí),函數(shù)可以被直接調(diào)用,當(dāng)參數(shù)個(gè)數(shù)不為0時(shí),用戶在調(diào)用時(shí)就需要提供有效的參數(shù)。

在函數(shù)定義時(shí),花括號(hào)內(nèi)的代碼就是在調(diào)用函數(shù)時(shí)將會(huì)執(zhí)行的代碼,這段代碼可以包括變量、表達(dá)式、流程控制語句,甚至是其他的函數(shù)或類定義。

二、參數(shù)的傳遞

一般情況下,參數(shù)是通過值來傳遞的。通過值傳遞參數(shù)不會(huì)應(yīng)為函數(shù)內(nèi)部參數(shù)值的變化而改變函數(shù)外部的值。

如果希望函數(shù)修改外部傳來的參數(shù)值,可以使用引用參數(shù)傳遞,只要在定義函數(shù)時(shí)在參數(shù)前面加上“&”。

函數(shù)還可以使用默認(rèn)參數(shù),在定義函數(shù)時(shí)給參數(shù)賦予默認(rèn)值,參數(shù)的默認(rèn)值必須是常量表達(dá)式,不能是變量、類成員或函數(shù)調(diào)用。在使用默認(rèn)參數(shù)時(shí),任何默認(rèn)參數(shù)都要放在非默認(rèn)參數(shù)的右側(cè),否則函數(shù)可能不會(huì)按預(yù)期情況工作。

三、函數(shù)的作用域

在主程序定義的變量和在函數(shù)中定義的變量都是局部變量。在函數(shù)中定義的變量只能在函數(shù)內(nèi)部使用。在主程序中定義的變量只能在主程序中使用,而不能在函數(shù)中使用。如果要使函數(shù)中的變量作用于函數(shù)外部,需要使用global關(guān)鍵字將變量聲明為全局變量。函數(shù)中的變量還可以聲明為靜態(tài)變量,函數(shù)被調(diào)用完后靜態(tài)變量的值并不丟失,在下次調(diào)用該函數(shù)時(shí),靜態(tài)變量的值是上次調(diào)用函數(shù)時(shí)賦的值。

四、函數(shù)的返回值

函數(shù)聲明時(shí),在函數(shù)代碼中使用return語句可以立即結(jié)束函數(shù)的運(yùn)行,程序返回到調(diào)用該函數(shù)的下一條語句。

中斷函數(shù)執(zhí)行并不是return語句最常用的功能,許多函數(shù)使用return語句返回一個(gè)值來與調(diào)用它們的代碼進(jìn)行交互。函數(shù)的返回值可以是任何類型的值,包括列表和對(duì)象。

五、函數(shù)的調(diào)用

函數(shù)在聲明后就可以被調(diào)用。函數(shù)如果沒有返回值,調(diào)用時(shí)使用函數(shù)名即可。如果函數(shù)具有返回值,則可以將函數(shù)的返回值賦給一個(gè)變量。

六、遞歸函數(shù)

PHP支持遞歸函數(shù),遞歸函數(shù)就是調(diào)用函數(shù)本身,可以實(shí)現(xiàn)循環(huán)的作用。

使用遞歸函數(shù)時(shí)一定要給出遞歸的終止條件,否則函數(shù)將一直執(zhí)行下去直到服務(wù)器內(nèi)存耗盡,或達(dá)到最大調(diào)用次數(shù)。

七、變量函數(shù)

PHP中有變量函數(shù)這個(gè)概念,在變量的后面加上一對(duì)小括號(hào)就構(gòu)成了一個(gè)變量函數(shù)。

如果創(chuàng)建了變量函數(shù),PHP腳本運(yùn)行時(shí)將尋找與變量名相同的函數(shù),如果函數(shù)存在,則嘗試執(zhí)行該函數(shù),如果不存在則產(chǎn)生一個(gè)錯(cuò)誤。為防止這類錯(cuò)誤,可以在調(diào)用變量函數(shù)之前使用PHP的function_exist()函數(shù)來判斷該變量函數(shù)是否存在。

變量函數(shù)不能用于語言結(jié)構(gòu),如echo()、print()、unset()、include()、require()、isset()。

八、系統(tǒng)函數(shù)

用戶自定義函數(shù)可以進(jìn)行邏輯運(yùn)算,而大部分的系統(tǒng)底層工作需要由系統(tǒng)函數(shù)來完成。

PHP系統(tǒng)了豐富的系統(tǒng)函數(shù)供用戶使用,包括文件系統(tǒng)函數(shù)、數(shù)組函數(shù)、字符串函數(shù)等。并不是所有的系統(tǒng)函數(shù)都能直接調(diào)用,有一些擴(kuò)展的系統(tǒng)函數(shù)需要安裝擴(kuò)展庫(kù)之后才能調(diào)用。當(dāng)前運(yùn)行環(huán)境支持的函數(shù)列表可以在phpinfo頁(yè)面查看。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI