PHP函數
1.函數概念
函數就是一段封裝起來的代碼,可以隨時調用。
function wel(){
echo "welcom to beijing";
}
2、函數的定義格式
function 函數名(【參數1】【參數2】,.....){
//函數體,就是PHP語句
return 某值/表達式//
}
return的作用:
函數就好比一個豆漿機器,參數就像黃豆和水,
我們將黃豆和水放進去,如果沒有產出豆漿,那就沒有任何作用;
return 返回一個結果
誰能捕捉到這個調用結果呢?調用結束後,調用行可以捕捉return的結果。
函數的命名規範:
有效的函數名以字母或下劃線打頭,後面跟字母,數字或下劃線。
對於函數,命名規則和變量是一樣的,但是函數不區分大小寫。
註意:雖然不區分大小寫,但是聲明時和調用是大小寫要保持一致。
3、函數的返回值
return 返回一個結果
a.值通過使用可選的返回語句返回。
b.可以返回包括數組和對象的任意類型。
c、返回語句會立即中止函數的運行,並且將控制權交回調用該函數的代碼行。
誰能捕捉到這個調用結果呢?調用結束後,調用行可以捕捉return的結果。
a、無參
function say(){
return ‘hello‘;
}
echo say();
b、有參數
function add($a,$b){
return $a+$b;
}
echo add(3,4);
4、函數的傳參方式--值傳遞和引用傳遞
1 function add($a){ 2 $a = $a+1; 3 return $a; 4 } 5 $b = 7; 6 echo add($b); 7 echo "<br/>"; 8 echo $b;
輸出8
7
引用傳值
1 function add(&$a){ 2 $a = $a+1; 3 return$a; 4 } 5 $b = 7; 6 echo add($b); 7 echo "<br/>"; 8 echo $b;
輸出:8
8
5、可選參數
1 function add($a,$b=8){ 2 $sum = $a+$b; 3 return $sum; 4 } 5 echo add(7);//輸出為15 6 echo add(7,10);//輸出17
1 function add($a,$b=8,$c){ 2 $sum = $a+$b+$c; 3 return $sum; 4 } 5 //echo add(7,8);//報錯 6 echo add(7,10,10);//輸出為27 7 echo add(7,8,10);//輸出為25
1 function add($a,$b,$c=8){ 2 $sum = $a+$b+$c; 3 return $sum; 4 } 5 //echo add(7,8);//報錯 6 echo add(7,10,10);//輸出為27 7 echo add(7,10);//輸出為25
6、函數作用域
變量的作用域,就是變量在函數裏,和不在函數裏。
對於PHP而言,函數的作用域非常簡單,它就區分函數內和函數外
1 function t(){ 2 echo $a; 3 $b = 5; 4 } 5 $a = 2; 6 t(); 7 echo $b;
輸出錯誤,$a、$b未定義
函數內部和函數外部分別有兩個花名冊
函數內部的變量有它自己的花名冊
1 $b = 7; 2 function num(&$b){ 3 return $b = $b-1; 4 } 5 echo num($b);//6 6 echo $b;//6
全局變量
1 $a = 8; 2 function c(){ 3 global $a;//告訴函數去全局變量裏面找$a 4 return $a; 5 } 6 echo c();//輸出8
全局數組
1 $a = 1; 2 $b = 3; 3 $name = ‘zhangsan‘; 4 print_r($GLOBALS);
Array ( [_GET] => Array ( ) [_POST] => Array ( ) [_COOKIE] => Array ( [pgv_pvi] => 6579450880 ) [_FILES] => Array ( ) [GLOBALS] => Array *RECURSION* [a] => 1 [b] => 3 [name] => zhangsan )
1 //$GLOBALS全局數組,$_POST,$_GET 2 3 function d(){ 4 $GLOBALS[‘age‘] = 23; 5 $GLOBALS[‘sex‘] = ‘man‘; 6 } 7 d(); 8 print_r($GLOBALS);
Array ( [_GET] => Array ( ) [_POST] => Array ( ) [_COOKIE] => Array ( [pgv_pvi] => 6579450880 ) [_FILES] => Array ( ) [GLOBALS] => Array *RECURSION* [age] => 23 [sex] => man )
1 function d(){ 2 $GLOBALS[‘age‘] = 23; 3 $GLOBALS[‘sex‘] = ‘man‘; 4 } 5 d(); 6 print_r($GLOBALS); 7 echo $age;//輸出了23 8 echo $sex;//輸出了man
7、動態調用函數
1 function good(){ 2 echo ‘haha‘; 3 } 4 function bad(){ 5 echo ‘wowo‘; 6 } 7 $heart = ‘good‘; 8 9 $heart();
變量值當函數名來調用。
PHP函數