首頁 > 頭條 > 主體

php7.0函數種類與呼叫方法總結

PHP中文网
發布: 2017-07-28 15:26:34
原創
2414 人瀏覽過

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

一、名稱固定的函數:

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

<?php
//1按名调用:最直接和普通的方式
echo &#39;1.用function关键字创建常规函数,按函数名称调用:<br>&#39;;
function add($a, $b){
  return $a.&#39;+&#39;.$b.&#39;=&#39;.($a+$b);
};
echo add(5,6);
echo &#39;<hr>&#39;;
登入後複製

執行返回:

#1.用function關鍵字建立常規函數,依函數名稱呼叫:
5+6=11

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

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

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

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

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

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

<?php
//2.用系统函数create_function()来创建一个匿名函数/可变函数/变量函数/闭包函数
echo &#39;2.用内置create_function()函数创建匿名函数,用变量名调用:<br>&#39;;
$func1 = create_function(&#39;$a,$b&#39;,&#39;return $a.\&#39;+\&#39;.$b.\&#39;=\&#39;.($a+$b);&#39;);
echo $func1(5,6);
echo &#39;<hr>&#39;;
登入後複製

執行返回:

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

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

<?php
//3匿名函数:也叫闭包函数,将函数做为值赋给一个变量
echo &#39;3.用function关键字创建匿名函数,用变量名调用:<br>&#39;;
$func2 = function ($a, $b){
  return $a.&#39;+&#39;.$b.&#39;=&#39;.($a+$b);
};
echo $func2(5,6);
echo &#39;<hr>&#39;;
登入後複製

執行回傳:

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

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

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

<?php//4自执行函数:创建完立即执行不必明示调用echo &#39;4.用function关键字创建匿名函数,然后直接传参调用执行:<br>&#39;;//自运行的匿名函数echo (function ($a,$b){return $a.&#39;+&#39;.$b.&#39;=&#39;.($a+$b);})(5,6);
登入後複製

執行回傳:

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

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

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

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

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

文章來源:http://peter.php.cn/blog/detail/188.html 

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板