新聞中心

創(chuàng)新互聯(lián)建站長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為延安企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè),延安網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
在 php 中除了已經(jīng)給我們提供了數(shù)以千計(jì)的系統(tǒng)函數(shù)之外,還可以根據(jù)開發(fā)的需要來自定義函數(shù)。所謂的系統(tǒng)函數(shù)是就在 PHP 中提供的可以直接使用的函數(shù),每一個(gè)系統(tǒng)函數(shù)都是一個(gè)完整的可以完成指定任務(wù)的代碼段。
在開發(fā)時(shí),一些常用的功能可以借助調(diào)用系統(tǒng)函數(shù)來完成。但是如果某些功能在 PHP 中沒有提供系統(tǒng)函數(shù)的話,就需要我們自己來定義函數(shù)了。完成同樣的任務(wù),使用系統(tǒng)函數(shù)的執(zhí)行效率會(huì)比自定義函數(shù)高,但兩種函數(shù)在程序中的調(diào)用方式是沒有區(qū)別的。
函數(shù)的定義
在 PHP 中聲明一個(gè)自定義的函數(shù)可以使用下面的語法格式:
function 函數(shù)名 (參數(shù)1, 參數(shù)2, ..., 參數(shù)n){
函數(shù)體;
return 返回值;
}
函數(shù)的語法格式說明如下:
- 每個(gè)函數(shù)的第一行都是函數(shù)頭,由聲明函數(shù)的關(guān)鍵字 function、函數(shù)名和參數(shù)列表三部分組成,其中每一部分完成特定的功能;
- 每個(gè)自定義函數(shù)都必須使用 function 關(guān)鍵字聲明;
- 函數(shù)名可以代表整個(gè)函數(shù),可以將函數(shù)命名為任何名稱,只要遵循變量名的命名規(guī)則即可。每個(gè)函數(shù)都有唯一的名稱,但需要注意的是,在 PHP 中不能使用函數(shù)重載,所以不能定義重名的函數(shù),也包括不能和系統(tǒng)函數(shù)同名;
- 聲明函數(shù)時(shí)函數(shù)名后面的小括號(hào)“()”也是必須有的,在小括號(hào)中包含了一組可以接受的參數(shù)列表,參數(shù)就是聲明的變量,然后在調(diào)用函數(shù)時(shí)可以將變量傳遞給函數(shù)。參數(shù)列表可以為空,也可以有一個(gè)或多個(gè)參數(shù),多個(gè)參數(shù)之間使用逗號(hào)分隔;
- 關(guān)鍵字“function”與函數(shù)名之間需要使用空格分隔開,而函數(shù)名與包裹參數(shù)列表的小括號(hào)之間不需要使用空格分隔,當(dāng)然加上空格也不會(huì)出錯(cuò);
- 函數(shù)體位于函數(shù)頭后面,需要使用大括號(hào)“{}”包裹起來。函數(shù)的所用工作都是在函數(shù)體中完成的。函數(shù)被調(diào)用后,首先執(zhí)行函數(shù)體中的第一條語句,執(zhí)行到 return 語句或最外面的大括號(hào)“}”后結(jié)束,返回到調(diào)用函數(shù)的地方。函數(shù)體中可以使用任何有效的 PHP 代碼,甚至是其他的函數(shù)或類的定義也可以在函數(shù)體中聲明;
- 使用關(guān)鍵字 return 可以從函數(shù)中返回一個(gè)值或者表達(dá)式,程序執(zhí)行到 return 語句時(shí),該表達(dá)式將被計(jì)算,然后返回到調(diào)用函數(shù)的地方繼續(xù)執(zhí)行。
因?yàn)閰?shù)列表和返回值在函數(shù)定義時(shí)都不是必須的,而其他的部分是必須有的,所以聲明函數(shù)時(shí)通常有以下幾種方式。
1) 在聲明函數(shù)時(shí)可以沒有參數(shù)列表:
function 函數(shù)名(){
函數(shù)體;
return 返回值;
}
2) 在聲明函數(shù)時(shí)可以沒有返回值:
function 函數(shù)名(參數(shù)1, 參數(shù)2, ..., 參數(shù)n){
函數(shù)體;
}
3) 在聲明函數(shù)時(shí)可以沒有參數(shù)列表和返回值:
function 函數(shù)名(){
函數(shù)體;
}
函數(shù)的調(diào)用
不管是自定義的函數(shù)還是系統(tǒng)函數(shù),如果函數(shù)不被調(diào)用,就不會(huì)執(zhí)行。只要在需要使用函數(shù)的位置,使用函數(shù)名稱和參數(shù)列表進(jìn)行調(diào)用即可。
函數(shù)被調(diào)用后開始執(zhí)行函數(shù)體中的代碼,執(zhí)行完畢返回到調(diào)用的位置繼續(xù)向下執(zhí)行。所以在函數(shù)調(diào)用時(shí)函數(shù)名稱可以總結(jié)出以下三個(gè)作用。
- 通過函數(shù)名稱可以調(diào)用函數(shù),并讓函數(shù)體的代碼運(yùn)行,調(diào)用幾次函數(shù)體就會(huì)執(zhí)行幾次;
- 如果函數(shù)有參數(shù)列表,還可以通過在函數(shù)名后面的小括號(hào)中傳入對(duì)應(yīng)的值給參數(shù),在函數(shù)體中使用參數(shù)來改變函數(shù)內(nèi)部代碼的執(zhí)行行為;
- 如果函數(shù)有返回值,當(dāng)函數(shù)執(zhí)行完畢時(shí)就會(huì)將 return 后面的值返回到調(diào)用函數(shù)的位置,這樣就可以把函數(shù)名稱當(dāng)做函數(shù)返回的值使用。
提示:只要聲明的函數(shù)在腳本中可見,就可以通過函數(shù)名在腳本的任意位置進(jìn)行調(diào)用,在 PHP 中可以在函數(shù)的聲明之后調(diào)用,也可以在函數(shù)的聲明之前調(diào)用,還可以在函數(shù)中調(diào)用函數(shù)。
【示例】將我們講解 for 循環(huán)時(shí)打印九九乘法表的程序封裝到函數(shù)中,代碼如下所示:
';
}
}
table();//調(diào)用函數(shù)
?>
運(yùn)行結(jié)果如下:
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
【示例】下面我們來定義一個(gè)函數(shù),來實(shí)現(xiàn)簡(jiǎn)單的加法運(yùn)算,代碼如下所示:
';
echo '6 + 33 ='.add(6,33).'
';
echo '42 + 21 ='.add(42,21).'
';
echo '167 + 153 ='.add(167,153);
?>
運(yùn)行結(jié)果如下:
$sum = 16
6 + 33 =39
42 + 21 =63
167 + 153 =320
分享題目:PHP定義函數(shù)
標(biāo)題路徑:http://m.5511xx.com/article/dhjiphj.html


咨詢
建站咨詢
