成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 學(xué)習(xí)總結(jié)之函數(shù)

airborne007 / 2484人閱讀

摘要:匿名函數(shù)在中,匿名函數(shù),也叫閉包函數(shù),是指允許臨時(shí)創(chuàng)建一個(gè)沒有指定名稱的函數(shù)。常用于回調(diào)函數(shù)中的參數(shù)閉包函數(shù)也可以作為變量的值來使用閉包可以從父作用域中繼承變量。

函數(shù)定義

有效的函數(shù)名以字母或下劃線打頭,后面跟字母,數(shù)字或下劃線;

函數(shù)名可以不區(qū)分大小(實(shí)際上,PHP 的函數(shù)名、方法名、類名都可以不區(qū)分大小寫);

函數(shù)無需在調(diào)用之前被定義,除非一個(gè)函數(shù)是有條件才被定義時(shí);

PHP 不支持函數(shù)重載,也不可能取消定義或者重定義已聲明的函數(shù)。


函數(shù)的參數(shù)
1.值傳遞

在函數(shù)內(nèi)部改變了參數(shù)的值,并不會(huì)影響到在函數(shù)外部該參數(shù)的值:


2.引用傳遞

保持參數(shù)的值在函數(shù)內(nèi)外部一致。引用傳遞,可以在函數(shù)定義中該參數(shù)的前面加上符號(hào) &


3.可變數(shù)量的參數(shù)

PHP 支持可變數(shù)量的參數(shù)。定義函數(shù)時(shí)列出的參數(shù)實(shí)際上只是最少的參數(shù);在調(diào)用時(shí)是允許多傳參數(shù)的,只是多余的參數(shù)會(huì)被忽略掉:

function add($a, $b) 
{
    return $a + $b;
}

echo add(1,2,5); # 3

在 PHP 5.5 及更早版本中,如果需要處理不確定數(shù)量的參數(shù),可以使用以下函數(shù)進(jìn)行處理:
func_num_args() — 返回傳遞給函數(shù)的參數(shù)個(gè)數(shù)
func_get_arg() — 返回指定的參數(shù)
func_get_args() — 以數(shù)組的形式返回參數(shù)列表

";
           break;
       case 1:
           echo "只有1個(gè)參數(shù)。它是:" . func_get_arg(0) . "。
"; break; case 2: echo "有2個(gè)參數(shù)。它們是:" . func_get_arg(0) . "," . func_get_arg(1) . "。
"; break; default: echo "超過2個(gè)參數(shù)。它們是:"; print_r($argv); break; } } func(); # 沒有參數(shù)。 func(1); # 只有1個(gè)參數(shù)。它是:1。 func(1,2); # 有2個(gè)參數(shù)。它們是:1,2。 func(1,2,3,4,5); # 超過2個(gè)參數(shù)。它們是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

在 PHP 5.6 及以上的版本中,由 ... 語法實(shí)現(xiàn)可變數(shù)量的參數(shù)列表:

function sum(...$numbers) 
{
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4); # 10
可變函數(shù)

PHP 支持可變函數(shù)的概念 —— 如果一個(gè)變量名后有圓括號(hào),PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它:


注:可變函數(shù)不支持 PHP 中的語言結(jié)構(gòu),如 echoprint 等。
匿名函數(shù)

在 PHP 中,匿名函數(shù),也叫閉包函數(shù),是指允許臨時(shí)創(chuàng)建一個(gè)沒有指定名稱的函數(shù)。常用于回調(diào)函數(shù)中的參數(shù):

 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )

閉包函數(shù)也可以作為變量的值來使用:

$greet = function($name) {
    printf("Hello %s
", $name);
};

$greet("World"); # Hello World

閉包可以從父作用域中繼承變量。 任何此類變量都應(yīng)該用 use 語言結(jié)構(gòu)傳遞進(jìn)去:


如果需要延遲綁定 use 里面的變量,需要使用引用,否則在定義的時(shí)候就會(huì)做一份拷貝放到 use 中:


函數(shù)動(dòng)態(tài)調(diào)用

在 PHP 中,除了直接調(diào)用函數(shù)外,還可以通過 call_user_func()call_user_func_array() 函數(shù)間接調(diào)用函數(shù):

";
}

call_user_func("named_func", "PARAM1", "PARAM2");

call_user_func_array("named_func", array("PARAM1", "PARAM2"));

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28532.html

相關(guān)文章

  • PHP 學(xué)習(xí)總結(jié)變量

    摘要:小駝峰法大駝峰法匈牙利命名法變量名屬性類型對(duì)象描述。是一種弱類型語言,變量在使用之前并不需要聲明類型,且同一變量可以保存多種不同類型的數(shù)據(jù)。另外,在函數(shù)內(nèi)部創(chuàng)建的靜態(tài)變量是無法在函數(shù)外部使用的。 變量標(biāo)識(shí)符 標(biāo)識(shí)符即是變量的名稱,PHP 中關(guān)于變量的標(biāo)識(shí)符有以下規(guī)則: 由任意字母、數(shù)字、下劃線組成,但不能以數(shù)字開頭 嚴(yán)格區(qū)分大小寫 為了科學(xué)規(guī)范標(biāo)識(shí)符,主要有以下幾種流行的命名方式:...

    bitkylin 評(píng)論0 收藏0
  • PHP 學(xué)習(xí)總結(jié)字符串

    摘要:因此,當(dāng)需要操作字符集的字符串時(shí)候,請(qǐng)務(wù)必安裝擴(kuò)展,并使用相應(yīng)的函數(shù)代替原生的字符串函數(shù)中國擴(kuò)展大部分的函數(shù)都需要基于一個(gè)編碼內(nèi)部編碼來處理,請(qǐng)務(wù)必統(tǒng)一使用編碼,這個(gè)大部分可以在中配置。 創(chuàng)建 PHP 支持 4 種方式來創(chuàng)建一個(gè)字符串:單引號(hào)、雙引號(hào)、heredoc 語法結(jié)構(gòu)和 nowdoc 語法結(jié)構(gòu)。 1. 單引號(hào) 在單引號(hào)字符串中,變量和特殊字符將不會(huì)被轉(zhuǎn)義替換,除了反斜杠和單引號(hào)...

    WelliJhon 評(píng)論0 收藏0
  • PHP 學(xué)習(xí)總結(jié)數(shù)組

    摘要:概述我們知道,在編程語言中,數(shù)組的使用頻率是很高的,幾乎每個(gè)腳本都會(huì)使用到。循環(huán)缺點(diǎn)遍歷完成之后,不能對(duì)數(shù)組進(jìn)行第二次遍歷數(shù)組內(nèi)部指針指向了最后一個(gè)元素。 概述 我們知道,在 PHP 編程語言中,數(shù)組的使用頻率是很高的,幾乎每個(gè)腳本都會(huì)使用到。 PHP 自帶了大量的、優(yōu)秀的操作數(shù)組的函數(shù)以供我們使用,本文就對(duì)這些數(shù)組函數(shù)的使用做一些分類和總結(jié),方便大家以后查閱。 創(chuàng)建 1. range...

    wangdai 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個(gè)這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    caspar 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個(gè)這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    nihao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<