最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP方法的返回值示例詳解

 更新時間:2021年01月23日 15:43:15   作者:硬核項目經(jīng)理  
這篇文章主要給大家介紹了關(guān)于PHP方法返回值的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

不僅是PHP,大部分編程語言的函數(shù)或者叫方法,都可以用return來定義方法的返回值。從函數(shù)這個叫法來看,本身它就是一個計算操作,因此,計算總會有個結(jié)果,如果你在方法體中處理了結(jié)果,比如進(jìn)行了持久化保存,那么這個函數(shù)就不用返回任何內(nèi)容。而計算的結(jié)果是要給外部使用的,這時候就要將計算結(jié)果進(jìn)行返回了。

return關(guān)鍵字

function testA($a, $b)
{
 echo $a + $b;
}

var_dump(testA(1, 2)); // NULL

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

var_dump(testB(1, 2)); // 3

function testC($a, $b)
{
 return;
 echo $a + $b; // 后面不會執(zhí)行了
}

var_dump(testC(1, 2)); // NULL

不用return或者直接return;都會返回NULL,return會阻斷方法體中后續(xù)代碼的執(zhí)行。如果要返回多個值,只能使用數(shù)組組裝數(shù)據(jù)。

function testD($a, $b)
{
 return [
  $a + $b,
  $a * $b,
 ];
}

var_dump(testD(1, 2)); // [3, 2]

返回值類型聲明

關(guān)于返回值這一塊還是比較好理解的。下面才是重頭戲,在PHP7的新特性中,返回值聲明是非常亮眼的一道風(fēng)景。

function testE($a, $b) : bool
{
 if($a+$b == 3){
  return TRUE;
 }else{
  return NULL;
 }
}

var_dump(testE(1, 2)); // true
var_dump(testE(1.1, 2.2)); //TypeError: Return value of testE() must be of the type bool, null returned

如上例所示,如果返回值不是bool類型,那么將直接報TypeError的錯誤。

那么定義了返回值類型聲明有什么好處呢?我們在 PHP方法參數(shù)的那點事兒 有介紹過類型聲明的好處,這里就不過多贅述了,不管是參數(shù)類型聲明還是返回值類型聲明,都是一樣的。

function testF($a, $b): array
{
 return [
  $a + $b,
  $a * $b,
 ];
}
var_dump(testF(1, 2)); // [3, 2]

interface iA{

}
class A implements iA
{}
class B extends A
{
 public $b = 'call me B!';
}

function testG(): A
{
 return new B();
}

function testH(): B
{
 return new B();
}

function testI(): iA
{
 return new B();
}

var_dump(testG()); // B的實例
var_dump(testH()); // B的實例
var_dump(testI()); // B的實例

同樣,數(shù)組和類類型都是可以聲明定義的。不過除此之外,返回值聲明還可以定義void。它的作用其實就是聲明返回值為NULL,不能直接寫:NULL,而只能用:void來進(jìn)行聲明。

function testJ(): void
{
 echo "testJ";
 // return 1;
}
var_dump(testJ());

這時,如果嘗試進(jìn)行任何的return返回,都會直接報錯:Fatal error: A void function must not return a value。

總結(jié)

我們可以看到,PHP在不斷的發(fā)展中一直在吸取其他語言中的優(yōu)秀特性。很明顯,添加這些類型聲明的目的就是為了將來的編譯器做準(zhǔn)備的。這也是PHP8的一個重要特性,讓我們拭目以待吧!

到此這篇關(guān)于PHP方法的返回值的文章就介紹到這了,更多相關(guān)PHP方法返回值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

測試代碼:

https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP方法的返回值.php
參考文檔:

https://www.php.net/manual/zh...

相關(guān)文章

最新評論

广州市| 鞍山市| 获嘉县| 邮箱| 凌源市| 闽侯县| 南昌县| 姜堰市| 图们市| 博兴县| 东平县| 磐石市| 娄烦县| 永清县| 赞皇县| 富源县| 钦州市| 连云港市| 公主岭市| 新巴尔虎左旗| 德庆县| 德州市| 吴江市| 玉屏| 宝兴县| 阳城县| 东兰县| 郓城县| 屏边| 綦江县| 上栗县| 兴仁县| 萝北县| 崇阳县| 高平市| 乐陵市| 大竹县| 新余市| 揭东县| 河西区| 繁昌县|