手机Av在线不卡,99r这里只有精品11,一区二区啪啪啪网站,白虎美女在线

哈爾濱今日靈圖

[其他技能培訓(xùn)]
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)官方企業(yè)微信
位置: 獵學(xué)網(wǎng) > 學(xué)校機(jī)構(gòu) > 哈爾濱今日靈圖 > 學(xué)習(xí)資訊> 10個(gè)你應(yīng)該學(xué)習(xí)使用的PHP特性

10個(gè)你應(yīng)該學(xué)習(xí)使用的PHP特性

59 2017-04-19

1)標(biāo)量類型聲明(PHP7)

PHP是一種松散類型的編程語言,因此沒有提供任何指定輸入?yún)?shù)類型和返回值類型的方法。

PHP7通過以下語法改變了這個(gè)現(xiàn)象:

functionadd(int$x,int$y):int

{

return$x+$y;

}

echoadd(1,2);

有效類型為:類/接口名稱,self,array(數(shù)組),callable(回調(diào)類型),bool(布爾型),float(浮點(diǎn)型),int(整型)和string(字符串)。

2)??—空接合操作符(PHP7)

空接合操作符雖然小,但非常好用,是PHP7中新增加的。

??—只要操作符的左邊存在且不為空,就返回左邊,否則就返回操作符的右邊:

$b=NULL;

$c="abc123";

echo($a??$b??$c);

3)匿名類(PHP7)

PHP7中還有一個(gè)新增的也很不錯(cuò),那就是匿名類。

有時(shí)候,我們只是沒有必要創(chuàng)建一個(gè)命名的類,因?yàn)樗拿謺?dǎo)致當(dāng)前命名空間的膨脹。

語法非常簡單:

echo(newclass(){

publicfunctionmyMethod(){

return"Hello!";

}

})->myMethod();

4)Reflection

Reflection是一個(gè)用來獲取有關(guān)運(yùn)行時(shí)代碼信息的強(qiáng)大框架。

讓你可以對類、接口、函數(shù)、方法和擴(kuò)展執(zhí)行反向工程,以構(gòu)建映射引擎,IoC容器或文檔框架等等。

下面是一個(gè)獲取匿名類所有方法的簡單例子:

$class=newReflectionClass(newclass(){

publicfunctiongetText(){

return"Hellofromanonymousclass";

}

});

$methods=$class->getMethods();

var_dump($methods);

5)短數(shù)組初始化

在用PHP編程的時(shí)候,我傾向于大量使用數(shù)組,因?yàn)樗鼈儾粌H功能強(qiáng)大,而且簡單易用。

PHP的5.4.x版本使得更容易初始化:

$myArray=["foo","name"=>"bar"];

6)DateTime類

PHP的5.2版本附帶DateTime類作為首選的操縱和格式化日期和時(shí)間的方式。

更多信息請看這里:php/manual/en/class.datetime.php

7)Lambda表達(dá)式/匿名函數(shù)

匿名函數(shù)(有時(shí)也被稱為lambda表達(dá)式)是沒有指定名稱的函數(shù)。

匿名函數(shù)可以被分配給一個(gè)變量,如下例所示:

$sayHi=function($toName){

echo("Hi".$toName);

};

$sayHi("Peter");

更多信息請看這里:php/manual/en/functions.anonymous.php

8)array_map

array_map是一個(gè)不錯(cuò)的函數(shù),能幫助你對數(shù)組中的每個(gè)元素執(zhí)行計(jì)算。這在混合了匿名函數(shù)/lambda表達(dá)式的時(shí)候特別好用。

無論你為數(shù)組中的元素提供什么方法,array_map函數(shù)都適用:

$nameLengths=array_map(function($item){

returnstrlen($item);},["Sue","Peter","Michael"]);

需要注意的是,array_map可能會比foreach慢一點(diǎn)兒(特別當(dāng)混合使用lambda表達(dá)式的時(shí)候更為明顯),所以要慎用于那些非常大的數(shù)組。

更多信息請看這里:php/manual/en/function.array-map.php

9)json_encode()和json_decode()

我最近傾向于大量使用JSON序列化和反序列化。PHP的json_encode和json_decode函數(shù)對此提供了大力支持。

需要注意的是,json_encode會忽略私有成員:

classcar{

public$make="Tesla";

public$model="ModelS";

private$errorCodes=['34343','545344'];

}

$carAsJson=json_encode(newcar());

10)密碼的哈希(hashing)和驗(yàn)證

PHP通過password_hash和password_verify函數(shù),用一種安全的方式來大力支持密碼的哈希和驗(yàn)證。因?yàn)槭褂梅浅:唵危晕覀兙蜎]有必要重新發(fā)明輪子了。

作為PHP程序員,以上這10個(gè)PHP特性你一定要熟悉,感謝您的閱讀。