函式
1. 函式名是識別符號之一,只能有字母數字下劃線,開頭不能是數字;
函式名的命名,必須符合「小駝峰法則」func(),func(),func();
函式名不區分大小寫;
函式名不能與已有函式同名,不能與內建函式名同名;
2.function_exists("func");用於檢測函式是否已經宣告;
注意傳入的函式名,必須是字串格式,返回結果為true/false;
echo列印時,true為1,false不顯示;
[php中變數的作用域]
1.區域性變數:宣告在函式內部的變數,稱為區域性變數,只在函式內部使用,函式外如需使用,需在函式中使用return關鍵字返回;
2.全域性變數:宣告在函式外部的變數,稱為全域性變數;
&nbs 3.(較為常用)函式中使用變數預設使用區域性變數,如果需在函式中使用全域性變數,需要使用global關鍵字將全域性變數引入使用;
函式中的變數名,如果與全域性變數名重複,global之上,為函式的區域性變數,global之下為函式的全域性變數;
4.$globals[''] 全域性陣列;
$globals['a3'] 陣列,是php給我們內建的全域性陣列,可以直接給陣列新增值,無論在函式內外宣告,均可在任何地方直接使用;eg:$globals['a3'] =10;
5.函式中使用全域性變數,還有一種方式:通過給引數傳參,可以在函式內部使用全域性變數,但是傳遞以後的引數是區域性變數,內部改變,外部不會改變,除非傳遞的引數是位址.function func($a1,&$a2){}func($a1,$a2);
(原因) $a1是區域性變數,內部改變,外部不會改變,$a2也是內部變數位址,內部改變,外部也改變;
如果函式的形參,出現了取位址符號,則呼叫函式時,實參必須是變數,而不能是字面量 ;
www.cppcns.com eg:func($a1,$a2)對的 func($a1,2)錯的
【靜態變數】
靜態變數:使用static關鍵字宣告,static $num=10;
靜態變數的特點:
靜態變數在函式第一次載入的時候進行宣告;
函式使用完不會立即釋放靜態變數,靜態變數在整個指令碼執行過程中只會宣告一次;
同一函式多次呼叫,共享同乙個靜態變數。
www.cppcns.com; [函式的引數程式設計客棧傳遞方式]
在php中實參的個數只能比形參多,不能比形參少,否則會報錯
1.常規引數傳遞:
function fun($a)
echo fun(10);
2.引用型別的引數:
$a=10;
function func(&$a)func($b);
引用引數傳遞,函式內部修改變數,函式外同步變化;
形參為引用引數,實參只能是變數,不能是字面量。
3.預設引數:
function func($a,$b=10)
echo func(30); //$b的預設引數是10
如果引數中既有預設引數,又有非預設引數,那麼,預設引數列表必須要在非預設引數列表的後面,即要保證非預設引數的賦值順序.
func_get_args(); //取所有引數列表(陣列)
func_num_args(); //取所有引數的總個數,相當於count(func_num_args());
func_get_arg(0); //根據下表,取每個引數
[變數函式 ]
將乙個函式名,轉為字串後,賦給乙個變數。這個變數,就是我們所說的變數函式,可以加()呼叫函式內容;
function func()---->fun="func",----->func( );
[**函式]
1.使用變數函式,自定義**函式
function($func)-->function f(){}--->func("f");
2使用call_user_func_array和call_user_func自定義**函式;
兩個函式的第乙個引數,均為**函式,表示執行當前**;
不同點在於:call_user_func_array()第二個引數為陣列,並將陣列的每乙個值賦給**函式的引數列表,相當於js中的apply(); 而,call_user_func,是將**函式的引數列表,直接展開寫到第2-多個引數中,相當於js中的call();
eg:call_user_func_array("func",array(1,2,3));--->func(1,2,3);
call_user_func("func" 1,2,3);---->func(1,2,3);
[ 匿名函式]
由於變數函式在呼叫時存在多種呼叫方式,$fun()/func()所以為了讓函式的呼叫更為統一,才產生了匿名函式。
宣告匿名函式函式體後面的;必不可少!!!
匿名函式本身也是變數,用var_dump檢測為object型別;
常規函式:
function func()
$fun();//func();
匿名函式:
$func=function($a)
"; }; //宣告匿名函式函式體後面的;必不可少
$func(10);
var_dump($func);
例題:計算乙個數的階層:
function jiec($num)
return $jie;
} echo jiec(10);
[遞迴函式]
指的是在函式內部,呼叫函式自身的操作;當外層函式體中,遇到自身函式呼叫,繼續進入內層函式執行,而自身函式的後半部分暫不執行,知道最內層函式執行完以後,在逐步向外執行;
function func($num)
echo $num."
"; }func(10);
[include/require]
1.兩者的作用就是用於引入外部的php檔案到當前檔案中:include 'a.php';include ('a.php');
2.兩者的區別:(對於錯誤的處理不同)當引入檔案錯誤時,include會產生警告,並不影響後續**的執行,而require會產生錯誤,後續**不再執行;
3.一般當用於在檔案最上方匯入某些檔案時,使用require匯入,如果失敗,則不執行檔案;
如果是在某些分支條件中,匯入執行某些操作,一旦報錯不影響執行結果。
4.include_once和require_once表示:檔案只能匯入一次,如果多次呼叫函式,則後面的檔案會判斷檔案是否匯入,再決定是否匯入新檔案。
(檢測檔案是否匯入時只關心檔案是否已經匯入,並不關心使用何種方式匯入的。)
5.include/require可以匯入各種型別的檔案,相當於在當前檔案copy了乙份,但是copy過程中,php引擎會進行適當的編譯,確保不會出錯。
6.include和require是函式也是指令!php對於很多常用函式,會提供執行的寫法,eg:函式寫法echo("111");指令寫echo "111";
本文標題: php中的函式宣告與使用詳解
本文位址:
詳解PHP中array rand函式的使用方法
前言 array rand 函式從陣列中隨機選出乙個或多個元素,並返回。從乙個陣列中隨機取出n個值,用array rand 可以輕易的實現,當面對大陣列的時候,我們會擔心他的效率 效能問題。我測試了一下,當在乙個大小為一萬的陣列中隨機取出20個值,即array rand arr,20wutulfqh...
PHP中函式的定義與使用
函式的定義 function 函式名 引數列表 函式可分為四類 無參無返回值,無參有返回值,有參無返回值以及有參有返回值。具體使用如下 函式 無參無返回值 function cacl cacl 呼叫 echo 有參無返回值 function cacl1 num1,num2 cacl1 10,10 e...
C 函式指標的宣告與使用
一 函式指標是什麼 1.函式指標是指標 2.函式指標該如何宣告?我們可以和int型別的指標的宣告進行比對一下 宣告乙個int型指標 int p 宣告乙個函式型 假如是乙個有兩個int型別的引數以及乙個 int型別的返回值 的指標 int pfunc int,int 我們把指標名稱提出來看一下,整形指...