函數
1. 函數名是標識符之一,只能有字母數字下劃線,開頭不能是數字;
函數名的命名,必須符合“小駝峰法則”FUNC(),func(),Func();
函數名不區分大小寫;
函數名不能與已有函數同名,不能與內置函數名同名;
2. function_exists("func");
用于檢測函數是否已經聲明;
注意傳入的函數名,必須是字符串格式,返回結果為true/false;
echo打印時,true為1,false不顯示;
[php中變量的作用域]
1.局部變量:聲明在函數內部的變量,稱為局部變量,只在函數內部使用,函數外如需使用,需在函數中使用return關鍵字返回;
2.全局變量:聲明在函數外部的變量,稱為全局變量;
3.(較為常用)函數中使用變量默認使用局部變量,如果需在函數中使用全局變量,需要使用global關鍵字將全局變量引入使用;
函數中的變量名,如果與全局變量名重復,global之上,為函數的局部變量,global之下為函數的全局變量;
4.$GLOBALS[''] 全局數組;
$GLOBALS['a3'] 數組,是PHP給我們內置的全局數組,可以直接給數組添加值,無論在函數內外聲明,均可在任何地方直接使用;eg:$GLOBALS['a3'] =10;
5.函數中使用全局變量,還有一種方式:通過給參數傳參,可以在函數內部使用全局變量,但是傳遞以后的參數是局部變量,內部改變,外部不會改變,除非傳遞的參數是地址.function func($a1,&$a2){}func($a1,$a2);
(原因) $a1是局部變量,內部改變,外部不會改變,$a2也是內部變量地址,內部改變,外部也改變;
如果函數的形參,出現了取地址符號,則調用函數時,實參必須是變量,而不能是字面量 ;
eg:func($a1,$a2)對的 func($a1,2)錯的
【靜態變量】
靜態變量:使用static關鍵字聲明,static $num=10;
靜態變量的特點:
靜態變量在函數第一次加載的時候進行聲明;
函數使用完不會立即釋放靜態變量,靜態變量在整個腳本執行過程中只會聲明一次;
同一函數多次調用,共享同一個靜態變量。
[函數的參數傳遞方式]
在PHP中實參的個數只能比形參多,不能比形參少,否則會報錯
1.常規參數傳遞:
function fun($a){ $a+=10; return $a; } echo fun(10);
2.引用類型的參數:
$a=10; function func(&$a){ $a+=10; }func($b);
引用參數傳遞,函數內部修改變量,函數外同步變化;
形參為引用參數,實參只能是變量,不能是字面量。
3.默認參數:
function func($a,$b=10){ return $a+$b; } echo func(30); //$b的默認參數是10
如果參數中既有默認參數,又有非默認參數,那么,默認參數列表必須要在非默認參數列表的后面,即要保證非默認參數的賦值順序.
func_get_args(); //取所有參數列表(數組) func_num_args(); //取所有參數的總個數,相當于count(func_num_args()); func_get_arg(0); //根據下表,取每個參數
[變量函數 ]