程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP函數介紹

PHP函數介紹

編輯:關於PHP編程

PHP函數介紹


基本使用:   函數定義形式:         function 函數名(形參1,形參2,...) {             //函數體(代碼塊);         }     函數調用形式:         本質上就是使用一個名字來達到執行其中函數中的的作用。通常可以分兩種情形的調用:         第一種:沒有返回值的函數,則調用語句是獨立語句             函數名(實參1,實參2,...); //實參個數應該跟形參有匹配性           第二種:有返回值的函數,則調用語句,通常會“混雜”在別的語句中,並將該調用語句當作一個“數據”來使用:             A: $v1 = 函數名(); //賦值給其它變量,這裡省略實參語法,下同             B: $v1 = 函數名()*3+6; //參與運算,然後再賦值             C: echo 函數名(); //直接輸出             D: echo 函數名()*3+6; //參與運算,然後再輸出             E: $v1 = 函數名2(函數名(),實參2,實參3,...); //當作實參使用   函數調用流程分析:     開始調用:實際參數傳數據給形式參數     程序執行流程進入到函數中(一個獨立的運行空間),跟全局執行空間是隔離的     按常規的程序邏輯執行函數中的代碼     如果碰到return語句,則終止函數的執行,跳回函數開始調用的位置     如果執行到函數的最後位置,也同樣跳回函數開始調用的位置 其運行流程原理圖如下: 函數參數問題:     一個函數,     在定義時,有形式參數(形參:parameter)         1:形參一定是一個變量名,         2:該變量名只能是在該函數中有效的變量名,         3:而且只在該函數調用並執行時有效,函數結束,通常這些變量也就“銷毀”     在調用時有實際參數(實參:arguemet)         實參就是一個“實際數據”,該數據可以是一個“直接數據”(比如5,"abc"),也可以是一個變量中存儲的數據。         實參的作用是將其數據”賦值給“形參變量         實參跟形參之間通常應該有個“一一對應”關系       默認值參數:         定義一個函數的時候,在形式參數的位置,可以給形式參數設定默認值,此時就可以稱為默認值參數。比如:      注意:     默認值不能是對象或資源類型     默認值只能是常量表達式,或常量,不能是變量 即:如下語法是正確的:function f1($v = 3) {}, function f1($v = __LINE__) {},     如下語法是錯誤的:function f1($v = 3+1) {} , $m = 3,function f1($v = $m) {},   函數的參數傳值問題:     實際上,函數的參數傳值問題,跟變量之間的傳值是一樣的規則(模式):默認是值傳遞。     如果實參本身就是“直接數據”,則不存在傳值問題,而是簡單的“賦值”     傳值問題只發生在實參是變量的情形:     我們也可以讓某個參數(形參)以引用傳遞的方式來傳值:     引用傳遞的形參(實參),在函數內部改變其值,在函數外面的實參,也會相應做修改     注意:如果某個形參設定為引用傳遞,此時,實參只能使用變量,否則會出現語法錯誤,如:   參數的數量問題:     1:函數的參數的數量可以是0個或多個 -- 具體多少個,不是語法問題,而是應用問題     2:通常,實際參數的數量應該跟形式參數的數量一致     3:但是,在第二條的基礎上,如果形式參數中有默認值,則實際參數的對應項可以少省略             即:實參的個數,至少應該不少於形參中的非默認值參數的個數   但:我們還有一種特殊的處理函數參數的用法:自由參數數量     定義時可以不給定形參,但調用時,卻又可以給定任何個數的實參 在系統中,var_dump()這個函數也有同樣的使用效果:     $var_dump($v1);     var_dum($v1,$v2,$v3);  //這樣也是可以的 這種應用的實現,是依賴於系統中的3個系統函數來達到的:     func_get_args();    //獲得一個函數的接收到的所有實參數據,並結果是一個數組     func_get_arg(n);    //獲得一個函數所接收到的第n個實參數據(n從0開始)     func_num_args();    //獲得一個函數所接收到的所有實參數據個數

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved