PHP開(kāi)發(fā)者應(yīng)該學(xué)習(xí)、會(huì)用10個(gè)PHP7新特性
本文主要總結(jié)了10個(gè)PHP7特性,這些PHP特性對(duì)于PHP開(kāi)發(fā)者來(lái)說(shuō)都是應(yīng)該學(xué)習(xí)和使用的,一起來(lái)學(xué)習(xí)下:...
本文主要總結(jié)了10個(gè)PHP7特性,這些PHP特性對(duì)于PHP開(kāi)發(fā)者來(lái)說(shuō)都是應(yīng)該學(xué)習(xí)和使用的,一起來(lái)學(xué)習(xí)下:
1)標(biāo)量類型聲明(PHP7)
PHP是一種松散類型的編程語(yǔ)言,因此沒(méi)有提供任何指定輸入?yún)?shù)類型和返回值類型的方法。 PHP7通過(guò)以下語(yǔ)法改變了這個(gè)現(xiàn)象:
function add(int $x, int $y) : int { return $x + $y; } echo add(1, 2);
有效類型為:類/接口名稱,self,array(數(shù)組),callable(回調(diào)類型),bool(布爾型),float(浮點(diǎn)型),int(整型)和string(字符串)。
2) — 空接合操作符(PHP7)
空接合操作符雖然小,但非常好用,是PHP7中新增加的。 — 只要操作符的左邊存在且不為空,就返回左邊,否則就返回操作符的右邊:
//$a is not defined $b = NULL; $c = "abc123"; echo($a $b $c); //Result: abc123
3)匿名類(PHP7)
PHP7中還有一個(gè)新增的也很不錯(cuò),那就是匿名類。有時(shí)候,我們只是沒(méi)有必要?jiǎng)?chuàng)建一個(gè)命名的類,因?yàn)樗拿謺?huì)導(dǎo)致當(dāng)前命名空間的膨脹。語(yǔ)法非常簡(jiǎn)單:
echo (new class() { public function myMethod() { return "Hello!"; } })->myMethod(); //Result: Hello!
4)Reflection
Reflection是一個(gè)用來(lái)獲取有關(guān)運(yùn)行時(shí)代碼信息的強(qiáng)大框架。讓你可以對(duì)類、接口、函數(shù)、方法和擴(kuò)展執(zhí)行反向工程,以構(gòu)建映射引擎,IoC容器或文檔框架等等。
下面是一個(gè)獲取匿名類所有方法的簡(jiǎn)單例子:
$class = new ReflectionClass(new class() { public function getText() { return "Hello from anonymous class"; } }); $methods = $class->getMethods(); var_dump($methods);
更多信息請(qǐng)看這里:http://php.n
5)短數(shù)組初始化
在用PHP編程的時(shí)候,我傾向于大量使用數(shù)組,因?yàn)樗鼈儾粌H功能強(qiáng)大,而且簡(jiǎn)單易用。PHP的5.4.x版本使得更容易初始化:
$myArray = ["foo", "name" => "bar"];
6)DateTime類
PHP的5.2版本附帶DateTime類作為首選的操縱和格式化日期和時(shí)間的方式。
更多信息請(qǐng)看這里:http://php.n
7)Lambda表達(dá)式/匿名函數(shù)
匿名函數(shù)(有時(shí)也被稱為lambda表達(dá)式)是沒(méi)有指定名稱的函數(shù)。匿名函數(shù)可以被分配給一個(gè)變量,如下例所示:
$sayHi = function($toName) { echo("Hi " . $toName); }; $sayHi("Peter");
更多信息請(qǐng)看這里:http://php.n
8)array_map
array_map是一個(gè)不錯(cuò)的函數(shù),能幫助你對(duì)數(shù)組中的每個(gè)元素執(zhí)行計(jì)算。這在混合了匿名函數(shù)/ lambda表達(dá)式的時(shí)候特別好用。無(wú)論你為數(shù)組中的元素提供什么方法,array_map函數(shù)都適用:
$nameLengths = array_map(function($item) { return strlen($item); }, ["Sue", "Peter", "Michael"]); //Result: 3, 5, 7
需要注意的是,array_map可能會(huì)比f(wàn)oreach慢一點(diǎn)兒(特別當(dāng)混合使用lambda表達(dá)式的時(shí)候更為明顯),所以要慎用于那些非常大的數(shù)組。
更多信息請(qǐng)看這里:http://php.n
9)json_encode()和json_decode()
我最近傾向于大量使用JSON序列化和反序列化。PHP的json_encode和json_decode函數(shù)對(duì)此提供了大力支持。需要注意的是,json_encode會(huì)忽略私有成員:
class car { public $make = "Tesla"; public $model ="Model S"; private $errorCodes = ['34343', '545344']; } $carAsJson = json_encode(new car()); //Result: {"make":"Tesla","model":"Model S"}
更多信息請(qǐng)看這里:http://php.n
10)密碼的哈希(hashing)和驗(yàn)證
PHP通過(guò)password_hash和password_verify函數(shù),用一種安全的方式來(lái)大力支持密碼的哈希和驗(yàn)證。因?yàn)槭褂梅浅:?jiǎn)單,所以我們就沒(méi)有必要重新發(fā)明輪子了。想查看案例的話,請(qǐng)點(diǎn)擊下面的文章:
http://www.c
作為PHP程序員,以上這10個(gè)PHP特性你一定要熟悉,感謝您的閱讀。
- 使用者PHP圖表包裝程序創(chuàng)建漂亮的圖表的方法
- PHP單例模式模擬Java Bean實(shí)現(xiàn)方法示例詳解
- PHP圖像處理繪圖、水印、驗(yàn)證碼、圖像壓縮技術(shù)實(shí)例總
- PHP實(shí)現(xiàn)高清晰度無(wú)損圖片壓縮功能的代碼
- 用PHP處理png圖片白色背景色改為透明色的實(shí)例代碼
- 關(guān)于PHP往mysql數(shù)據(jù)庫(kù)中批量插入數(shù)據(jù)實(shí)例教程
- Php兩點(diǎn)地理坐標(biāo)距離的計(jì)算方法和具體代碼
- PHP獲取HTTP body內(nèi)容的方法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中獲取對(duì)象屬性的3種方法實(shí)例分析
- php5.5新增的yield關(guān)鍵字功能與相關(guān)使用技巧
使用者PHP圖表包裝程序創(chuàng)建漂亮的圖表的方法
這篇文章中,我將講解如何一步一步使用PHP,F(xiàn)usionCharts的核心JavaScript圖表庫(kù),以及它的PHP圖表包裝程序創(chuàng)建漂亮的圖表。...
PHP單例模式模擬Java Bean實(shí)現(xiàn)方法示例詳解
實(shí)例講述了PHP單例模式模擬Java Bean實(shí)現(xiàn)方法,介紹PHP單例模式模擬Java Bean實(shí)現(xiàn)方法,涉及php面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)操作技巧,需要的朋友可以參考下。...
PHP圖像處理繪圖、水印、驗(yàn)證碼、圖像壓縮技術(shù)實(shí)例總結(jié)
文章主要介紹了PHP圖像處理技術(shù),結(jié)合實(shí)例形式總結(jié)分析了php繪圖、水印、驗(yàn)證碼、圖像壓縮等相關(guān)函數(shù)、功能與圖形繪制實(shí)現(xiàn)技巧,需要的朋友可以參考下:1、繪圖 場(chǎng)景:...
PHP實(shí)現(xiàn)高清晰度無(wú)損圖片壓縮功能的代碼
經(jīng)常會(huì)用到把上傳的大圖片壓縮,特別是體積,在微信等APP應(yīng)用上,也默認(rèn)都是有壓縮的,那么,怎么樣對(duì)圖片大幅度壓縮卻仍能保持較高的清晰度呢?...
用PHP處理png圖片白色背景色改為透明色的實(shí)例代碼
文章主要介紹了php 處理png圖片白色背景色改為透明色的實(shí)例代碼,文中通過(guò)實(shí)例代碼給大家介紹了用PHP的GD庫(kù)把圖片的背景替換成透明背景,需要的朋友參考下...
關(guān)于PHP往mysql數(shù)據(jù)庫(kù)中批量插入數(shù)據(jù)實(shí)例教程
文章主要給大家介紹了關(guān)于php往mysql中批量插入數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧...
Php兩點(diǎn)地理坐標(biāo)距離的計(jì)算方法和具體代碼
文章主要為大家詳細(xì)介紹了php兩點(diǎn)地理坐標(biāo)距離的計(jì)算方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下php計(jì)算兩點(diǎn)地理坐標(biāo)距離的具體代碼,具體內(nèi)容如下功能:根據(jù)圓周率和...
PHP獲取HTTP body內(nèi)容的方法
今天小編就為大家分享一篇PHP獲取HTTP body內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧有時(shí)候我們獲取數(shù)據(jù)時(shí)需要根據(jù)Header中的格式來(lái)解析,比...
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中獲取對(duì)象屬性的3種方法實(shí)例分析
文章主要介紹了PHP獲取對(duì)象屬性的三種方法,結(jié)合實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中獲取對(duì)象屬性的常見(jiàn)操作技巧,需要的朋友可以參考下。PHP獲取對(duì)象屬性的三種方法,具體如下...
php5.5新增的yield關(guān)鍵字功能與相關(guān)使用技巧
文章主要介紹了PHP yield關(guān)鍵字功能與用法,結(jié)合實(shí)例形式分析了php5.5新增的yield關(guān)鍵字功能與相關(guān)使用技巧,需要的朋友可以參考下實(shí)例講述PHP yield關(guān)鍵字功能與用法具體如下:y...