php-函式的概念,語法,命名及引數
1、函式的基本概念
函式:function,是一種語法結構,將實現某一功能的程式碼(多行程式碼)封裝到一個結構中,從而實現程式碼的重複利用
2、函式的定義語法
函式的幾個關鍵點:
-
-
函式名
-
引數(形參和實參)
-
函式體
-
返回值
1、基本語法:
1 1、函式的定義: 2 function 函式名(引數){ 3 //函式體 4 //返回值:return 結果 5 } 6 //定義函式的目的:是為了實現程式碼的重複利用 7 8 示例: 9 <?php 10 function yb(){ 11 echo'hello yb'; 12 } 13 ?>
2、函式的使用:
---通過訪問函式的名字+();如果函式在定義時有引數,那麼在呼叫的時候就必須傳入對應的引數;函式是一種結構,不會自動執行,必須通過呼叫才可以
---函式的呼叫可以在函式的定義之前
1 示例: 2 <?php 3 yb(); 4 ?>
3、函式執行的記憶體分析:
-
讀取程式碼進入到程式碼段(編譯:將程式碼程式設計位元組碼儲存到記憶體)
-
根據程式碼逐行執行
-
原因:編譯和執行是分開的,先編譯後執行
3、函式命名規範
-
由字母,數字和下劃線組成,不能以數字開頭
-
駝峰法
除了左邊第一個單詞外,後面所有的單詞都大寫
-
下劃線法
單詞之間通過下劃線連線,單詞都是小寫
-
在一個指令碼中,函式不能重名
4、函式的引數
1、形參
-
形式引數,不具有實際意義的引數,是在函式定義時使用的引數
-
形參可以有多個,用逗號隔開
2、實參
-
實際引數,具有實際意義的引數,是在函式呼叫時使用的引數
-
傳入的引數,可以是變數,也可以是直接的值,或者算符計算結果
-
實參可以比形參多(不會報錯,函式內部不用而已),但不能比形參少
-
形參是實參的載體:實參在呼叫時通常需要傳入到函式內部參與計算,那麼需要在函式內部去找到實際資料所在的位置才能找到資料本身,需要實際呼叫的時候,將資料以實參的形式傳遞給形參,給形參賦值,從而使得函式內部可以用到外部資料
1 示例: 2 <?php 3 function add($a,$b){ 4 echo $a+$b; 5 } 6 $c=10; 7 add($c,20); 8 ?> 9 //結果:30
3、預設值
形參的預設值:在函式定義的時候,就給形參一個初始賦值,如果呼叫的時候,沒有實參,就用預設值
【注】:預設值的定義是放在最後邊的(多個),不能在左邊形參有預設值,但是右邊沒有
函式外部定義的變數名字與函式定義的形參是沒關係的
1 示例: 2 <?php 3 $num1=10; 4 function jian($a=0,$b=0){ 5 echo $a-$b; 6 } 7 jian($num1); 8 ?> 9 //結果:10
4、引用傳遞
---實參在調甲寸會將值賦值給形參,那麼實際上使用的方式就是一種簡單的值傳遞:將實參(如果是變數或者常量或者其他表示式)的結果(值)取出來賦值給形參:形參與外部實際傳入的引數本身沒有任何關聯關係:只是結果一樣。
---有的時候,希望在函式內部拿到的外部資料,能夠在函式內部改變,那麼就需要明確告知函式(定義時),函式才會在呼叫的時候去主動獲取外部資料的記憶體地址。以上這種定義形式引數的方式叫作引用傳值
【注】:在傳入實參的時候,必須傳入變數
基本定義語法:在形參前加&
1 function 函式名(形參1,&形參2){ 2 //函式體 3 }
在呼叫的時候,必須給引用傳值的引數位置傳入實際引數,而且引數本身必須是變數(變數才有指向的資料的記憶體地址)
1 示例: 2 <?php 3 function display($a,&$b){ 4 $a=$a*$a; 5 $b=$b*$b; 6 echo $a,'<br/>',$b,<br/>; 7 } 8 $a=10; 9 $b=5; 10 display($a,$b); 11 echo $a,'<br/>',$b,<br/>; 12 ?> 13 14 //結果: 15 100 16 25 17 10 18 25