PHP提供了功能強大的函數,但這遠遠滿足不了需要,程序員可以根據需要自己創(chuàng)建函數。本節(jié)就開始學習創(chuàng)建函數的方法。
我們在實際開發(fā)過程當中需要有很多功能都需要反復使用到,而這些反復需要使用到的功能,我們能定義成功能(函數),就盡可能定義成功能(函數)。使用的時候,吼一下它的名字即可。
那我們來學一下自定義函數的語法規(guī)定,語法規(guī)定如下:
function 函數名([參數名1[=值1], 參數名2[=值2], 參數名n[=值n]]) { // 函數中的功能體 // return 返回值 } //調用函數 函數名()
上面的語法規(guī)定中發(fā)現了如下特點,產生如下語未能規(guī)定:
函數以function開始
function后面接空格,空格后接函數名
函數名與變量命名規(guī)則基本一樣,但是不同的是:函數名不區(qū)分大小寫(變量命名規(guī)則不記得的,回頭看看)
所謂參數其實就是變量
如果有參數的話,參數后可以接(=)等號,等號接默認值。參數值也是用[](中括號)括起來的,代表選填
函數后的參數變量,主要功能是把函數體外的變量值,傳入函數體內來使用,函數體的變量和函數體外的變量通常是兩個不同的變量。
函數中的具體功能(功能體)用大括號括起來,代表這是一個函數的功能區(qū)間
函數可以有返回值也可以沒有返回值,用[](中括號)括起來的,代表選填。
return后接空格,空格后接返回值,若有return,return后的代碼均不執(zhí)行。
函數的執(zhí)行沒有順序關系,可以在定義處之前的位置調用
函數不能被定義兩次,即函數不能被重載
切記:你也要多寫代碼來進行實驗!
1.函數是條狗,哪里調用哪里哪,它就跟著你走:
<?php function php_cn(){ echo 'PHP中文網'; } php_cn(); // PHP中文網 php_cn(); // PHP中文網 php_cn(); // PHP中文網 ?>
2.函數名只能是字母,數字,下劃線的組合,并且之間不能包含空格,數字不能放在變量名首位:
<?php function 1demo(){ // 報錯 } ?>
3. 函數名與變量命名規(guī)則一樣,但是不同的是:函數名不區(qū)分大小寫:
<?php function Demo(){ echo 'PHP中文網<br />'; } demo(); // PHP中文網 Demo(); // PHP中文網 DEMO(); // PHP中文網 ?>
4. 函數體的參數若是定義了,未傳參數,代碼會報錯:
<?php //定義函數名為test,必須要傳入一個參數 function test($hello){ } test(); ?>
5. 函數后的參數如果有默認值,參數可以不填,代碼也不會報錯:
<?php function test( $arg = 10){ echo $arg; } test(); // 10 echo '<br>'; test(88); // 88 ?>
6. 函數后的參數可以寫多個:
<?php function test( $a , $b = 20 , $c = 30){ echo $a + $b + $c; } test( 1 , 2 , 3 ); // 6 ?>
7. 函數后如果有默認值和無默認值的參數,通常把無默認值的參數寫在最前面:
<?php function test( $a = 20 , $b = 30 , $c ){ echo $a + $b + $c; } //重點:重點看這一行執(zhí)行一下 test( , , 8 ); // 報錯 ?>
8. 函數體的變量與函數體外的變量沒有關系:
<?php //定義變量$hello的值為10 $hello = 10; //函數后的參數(形式上的參數,參數)處寫上變量名為$hello function demo( $hello ){ //形參帶入了函數體內,函數體內變量$hello 改為了 250 $hello = 250; //輸入2個250相加的結果 echo $hello + $hello; } //將函數體外的變量$hello,傳入變量的參數處(實際傳入的參數,實參),顯示出的結果為500 demo($hello); //此處$hello的值輸出,依然為10 echo $hello; ?>
9. 函數體中若有return,return 后的代碼不執(zhí)行:
<?php function demo(){ echo 111; return; echo 222; } demo(); // 111 ?>
10. 函數執(zhí)行完后,return 可把函數體內的值,帶帶函數體外:
<?php //定義一條函數狗 function php_cn(){ $foo = 5; $bar = 6; $result = $foo + $bar; //將$result的結果進行返回 return $result; } //調用php_cn()這個函數,$foo和$bar相加的$result就會返回回來給到變量$piao $piao = php_cn(); //輸出$piao的結果,果真為11 echo $piao; ?>
11. 函數的執(zhí)行沒有順序關系,可以在定義處之前的位置調用:
<?php demo(); function demo(){ $str = '我愛'; $str .= 'PHP中文網'; echo $str; } demo(); ?>
11. 函數不能重載:
<?php function demo(){ echo 123; } function demo(){ echo 123; } demo() // 報錯 //試試會報錯嗎? ?>