php函數的種類與調用方法大揭密

來源:互聯網
上載者:User
PHP中的函數看上去很簡單,實際上功能非常強大,我這裡按函數名稱是否固定,可以分為以下三大類:

一、名稱固定的函數:

這類函數,也叫:常規函數,直接用關鍵字function來建立,也是大家最熟悉的類型,例如:

<?php//1按名調用:最直接和普通的方式echo '1.用function關鍵字建立常規函數,按函數名稱調用:<br>';function add($a, $b){return $a.'+'.$b.'='.($a+$b);};echo add(5,6);echo '<hr>';

執行返回:

1.用function關鍵字建立常規函數,按函數名稱調用:5+6=11

二、名稱動態設定的函數:

這類函數有很多種稱呼,例如:匿名函數、可變函數、變數函數、閉包函數等,其實都一樣的,大家別被名稱嚇住了。

這種動態設定的函數,是用引用這個函數的變數名來調用,所以非常適合放在回呼函數中使用~~

為了教學需要,我這裡統稱為:匿名函數吧。

匿名函數的建立主要有二種方法,有的教材分開來說了,我這也分開吧。

1、建立方法一:用PHP內建的create_function(參數表,函數體)函數完成,這個函數有二個參數,這二參數必須放在引號中,別問為什麼,PHP就是這樣規定的,如果不服,那你創造出一個程式設計語言吧~~

//2.用系統函數create_function()來建立一個匿名函數/可變函數/變數函數/閉包函數echo '2.用內建create_function()函數建立匿名函數,用變數名調用:<br>';$func1 = create_function('$a,$b','return $a.\'+\'.$b.\'=\'.($a+$b);');echo $func1(5,6);echo '<hr>';

執行返回:

2.用內建create_function()函數建立匿名函數,用變數名調用:5+6=11

2、建立方法二:用function關鍵字來建立,建立過程與常規函數一樣,不同之處在於,它出現在值的位置上,也就是'='等號的右邊。將建立好的函數整體賦給一個變數;

//3匿名函數:也叫閉包函數,將函數做為值賦給一個變數echo'3.用function關鍵字建立匿名函數,用變數名調用:<br>';$func2 = function ($a, $b){return $a.'+'.$b.'='.($a+$b);};echo $func2(5,6);echo '<hr>';

執行返回:

3.用function關鍵字建立匿名函數,用變數名調用:5+6=11

三、沒有函數名稱,建立完直接傳參調用執行:

這類函數,它也匿名函數很像,但更加的粗暴,建立好直接用括弧一包,傳上參數就可以調用了,所以這類函數根本不需要名字,屬於一次性的函數。就像一次用品,用完就扔掉了。

//4自執行函數:建立完立即執行不必明示調用echo '4.用function關鍵字建立匿名函數,然後直接傳參調用執行:<br>';echo (function ($a,$b){return $a.'+'.$b.'='.($a+$b);})(5,6);  //自啟動並執行匿名函數

執行返回:

4.用function關鍵字建立匿名函數,然後直接傳參調用執行:5+6=11

總結(非常重要,不得不看):

php中,函數的使用還是非常靈活的,但不論如何,函數,歸根到底,還是一個處理過程。同時,也必須要有一個傳回值,才能讓使用者感知它的存在,也及它的價值!

所以,函數總是當做一個值來使用,因此,不能出現在等號'='的左邊,這就是函數與語言結構的最大區別。

例如,我們常說:echo()和list()是一個語言結構,不是一個函數,儘管看上去長得與函數一樣,就是因為它們可以放在等號的左邊,可以接受賦值。而函數不行。希望這篇文章,讓你對函數有更深的理解~~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.