首頁 >後端開發 >php教程 >php(4)——函數

php(4)——函數

WBOY
WBOY原創
2016-08-08 09:27:181052瀏覽

PHP中函數無需在調用之前被定義;

PHP 中的所有函數和類別都具有全局作用域,可以定義在一個函數之內而在之外調用,反之亦然;

PHP 不支援函數重載,也不可能取消定義或重定義已宣告的函數;

在PHP 中可以呼叫遞歸函數。但要避免遞歸函數/方法呼叫超過 100-200 層,因為可能會使堆疊崩潰從而使目前腳本終止。

函數的定義:

function 函數名稱([參數列表]){

函數體傳遞參考(該方式可以在函數體改變傳入的參數值)

如:

function fun(&$var){

$var; $var = 0;

fun($var);

echo $var;

輸出1;

PHP支持默認參數值。

如:

function fun($var1,$var2=2,$var3=3){

return $var1+$var2+$var3;{

return $var1+$var2+$var3;{

return $var1+$var2+$var3; ;

echo fun(1,1);echo fun(1,1,2);


將分別輸出6 5 4

注意:任何預設參數必須放在任何非預設參數的右側側;否則,函數將不會按照預期的情況工作。

如將上述函數改為:


function fun($var2=2,$var3=3,$var1){

return $var1+$var2+$3; );echo fun(1,1);

echo fun(1,1,2);

上述除了第三種調用方式能正常執行外,前兩種都會出現問題。

PHP支援可變數量的參數清單。
在PHP5.6之前,取得參數的資訊需要用到func_num_args()得到參數的數目,func_get_arg(i)取得第i個參數的值;



如:
){

$len = func_num_args();

$res = 0;

for($i = 0; $i

for($i = 0; $i i);

}

return $res;}

在PHP5.6中引入了...$args的方式,
在PHP5.6中引入了...$args的方式, ..$args){
$res = 0;
foreach ($args as $val){
$res += $val;

}

$res += $val;

}

$res += $val;

}
}
兩種方式的結果都是一樣的。

PHP中可變函數的概念
即如果一個變數名後有圓括號,PHP 將尋找與變數的值同名的函數,並且嘗試執行它。可變函數可以用來實現包括回調函數,函數表在內的一些用途。

例:

function fun(){

echo "Hello";

}$var = "fun";echo "Hello";}

$var


PHP中的匿名函數

匿名函數(Anonymous functions),也稱為閉包函數(

closures

),允許暫時建立一個沒有指定名稱的函數。最常用作回呼函數(callback)參數的值。

也可以將匿名函數透過賦值的方式指定其函數名,如:


$fun =  function (){

echo "H};

以上就介紹了php(4)-函數,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn