php函式的種類與呼叫方法大揭密

2022-05-09 04:00:08 字數 1918 閱讀 9372

php中的函式看上去很簡單,實際上功能非常強大,我這裡按函式名稱是否固定,可以分為以下三大類:

一、名稱固定的函式:

<?php

//1按名呼叫:最直接和普通的方式

echo '1.用function關鍵字建立常規函式,按函式名稱呼叫:

';function add($a, $b);

echo add(5,6);

echo '';

執行返回:

1.用function關鍵字建立常規函式,按函式名稱呼叫:

5+6=11

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

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

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

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

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

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

//

2.用系統函式create_function()來建立乙個匿名函式/可變函式/變數函式/閉包函式

echo '2.用內建create_function()函式建立匿名函式,用變數名呼叫:

';$func1 = create_function('$a,$b','return $a.\'+\'.$b.\'=\'.($a+$b);');

echo

$func1(5,6);

echo '';

執行返回:

2.用內建create_function()函式建立匿名函式,用變數名呼叫:

5+6=11

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

//

3匿名函式:也叫閉包函式,將函式做為值賦給乙個變數

echo '3.用function關鍵字建立匿名函式,用變數名呼叫:

';$func2 = function ($a, $b);

echo

$func2(5,6);

echo '';

執行返回:

3.用function關鍵字建立匿名函式,用變數名呼叫:

5+6=11

三、沒有函式名稱,建立完直接傳參呼叫執行:

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

//

4自執行函式:建立完立即執行不必明示呼叫

echo '4.用function關鍵字建立匿名函式,然後直接傳參呼叫執行:

';echo (function ($a,$b))(5,6); //

自執行的匿名函式

執行返回:

4.用function關鍵字建立匿名函式,然後直接傳參呼叫執行:

5+6=11

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

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

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

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

PHP 函式的定義與呼叫

函式 封裝一段用於完成特定功能的 通俗理解函式 可以完成某個工作的 塊,就像小朋友搭房子用的積木一樣,可以反覆使用,在使用的時候,拿來即用,而不用考慮它的內部構成。str abcd upper strtoupper str 呼叫strtoupper 函式將 str轉換成大寫 lower strtol...

JS函式的定義與呼叫方法

先定義乙個物件,然後在物件的屬性中定義方法,通過myobject.property來執行方法,this即指當前的myobject 物件。var bloginfo bloginfo.showblog 定義乙個函式,設定乙個變數名儲存函式,這時this指向到window物件。var myfunc fun...

JS函式的定義與呼叫方法

1.方法呼叫模式 先定義乙個物件,然後在物件的屬性中定義方法,通過myobject.property來執行方法,this即指當前的myobject 物件。var bloginfo bloginfo.showblog 2.函式呼叫模式 定義乙個函式,設定乙個變數名儲存函式,這時this指向到windo...