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