PHP函數原理理解詳談
目錄
- 函數初解
- 參數詳解
- 引用傳遞
- 靜態變量
函數初解
function,是一種語法結構,將實現某一個功能的代碼塊(多行代碼)封裝到一個結構中實現代碼的重復利用
函數定義語法:
關鍵點:function關鍵字,函數名,參數(形參和實參),函數體和返回值
基本語法:
function 函數名(參數){
//函數體
//返回值:return結果
}
定義函數的目的:實現代碼的重復利用(簡單明了)
函數的使用:通過訪問函數的名字+();//如果函數在定義的過程中有參數,那么在調用的時候必須傳入對應的參數
實例:
<?phpfunction display(){//定義 echo"hello world";}display();//調用?>
函數是在代碼執行階段碰到函數名字的時候才會調用,不是在編譯階段
函數的調用特點:只要系統在內存中能夠找到就可以執行,也就是函數的調用可以在函數的定義之前
<?phpdisplay();//調用function display(){//定義 echo"hello world";}?>
也就是這樣
注意:函數也不可同名
參數詳解
函數的參數分為兩種:形參和實參
形參是實參的載體:實參在調用時需要傳入函數內部參與計算,那么需要在函數內部去找到實際數據所在的位置才能找到數據本身;需要實際調用的時候,將數據以實參的形式傳遞給形參;給形參賦值,從而使得函數內部可以用到外部數據
<?phpfunction add($arg1,$arg2){//芝士形參,使用逗號分隔開 echo $arg1+$arg2;}echo "<hr/>";$arg1=10;$arg2=20;add($arg1,$arg2);//芝士傳入的實參,可以是變量或者其他有值的表達式?>
也就是調用時傳給函數的值是實參,函數會把實參賦值給形參,然后形參在函數中運行
函數外部定義的變量名字與函數定義的=形參名字沖突(重名)是沒有任何關系的,也就是同名形參在不同函數可以重復使用
引用傳遞
有的時候,希望在函數內部拿到的外部數據,能夠在函數內部改變,那么就需要明確告知函數(定義時),函數才會在調用的時候去主動獲取外部數據的內存地址。
基本定義語法:
Function 函數名(形參1,$形參2){
//函數體
}
在調用的時候,必須給引用傳值的參數位置傳入實際參數蘇,而且參數本身必須是變量。(變量才有指向的數值的內存地址)
<?phpfunction display($a,&$b){ $a=$a*$a; $b=$b*$b; echo $a,"<br>",$b,"<br/>";}$a=10;$b=5;display($a,$b);echo"<hr/>",$a,"<br/>",$b;?>
由于$,所以函數在定義的時候,對應的b形參采用的是取地址,所以在實參傳入之后,系統b取到了外部變量b的內存地址,a只去到了值,所以a只改變了函數內部自己,而b改變自己的同時也改變了外部
引用傳值注意事項:在傳入實參的時候,必須傳入變量
函數體:函數內部(大括號{}里面)的所有代碼都稱之為函數體 函數返回值:
返回值:return,指的是將函數實現的結果,通過return關鍵字返回給函數外部(函數調用處);在php中所有的函數都有返回值(如果沒有明確return使用,則系統默認返回null)
注意:函數的返回值可以是任意數據類型
return會直接結束函數,在return后的無法執行(函數內)
return還可以在文件中直接使用(不在函數里面);代表文件將結果return
后面跟的內容,轉交給包含當前文件的位置.(通產在系統配置文件中使用較多)
在文件中也代表著終止文件后面的代碼
靜態變量
關鍵字:static,是在函數內部定義的變量,使用static關鍵字修飾,用來實現跨函數共享數據的變量,函數運行結束所有局部變量都會清空,如果重新運行一下函數,所有的局部變量又會重新初始化
基本語法:
function 函數名(){
//定義變量
static $變量名=值 //通常會在定義的時候就直接賦值
}
<?phpfunction display(){ $local =1; static $count =1; echo $local++,$count++,"<br/>";}display();//11display();//12display();//13?>
函數在調用的時候,會自動跳過static關鍵字這一行,也就是靜態變量在使用后不會被釋放
到此這篇關于PHP函數原理理解詳談的文章就介紹到這了,更多相關PHP函數內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
相關文章: