10個你應該學習使用的PHP特性
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
本文主要總結了10個PHP特性,這些PHP特性對於PHP開發者來說都是應該學習和使用的,譯文如下:
1)標量型別宣告(PHP7)
PHP是一種鬆散型別的程式語言,因此沒有提供任何指定輸入引數型別和返回值型別的方法。 PHP7通過以下語法改變了這個現象:
function add(int $x, int $y) : int { return $x + $y; } echo add(1, 2);
有效型別為:類/介面名稱,self,array(陣列),callable(回撥型別),bool(布林型),float(浮點型),int(整型)和string(字串)。
2)?? — 空接合操作符(PHP7)
空接合操作符雖然小,但非常好用,是PHP7中新增加的。?? — 只要操作符的左邊存在且不為空,就返回左邊,否則就返回操作符的右邊:
//$a is not defined $b = NULL; $c = "abc123"; echo($a ?? $b ?? $c); //Result: abc123
3)匿名類(PHP7)
PHP7中還有一個新增的也很不錯,那就是匿名類。有時候,我們只是沒有必要建立一個命名的類,因為它的名字會導致當前名稱空間的膨脹。語法非常簡單:
echo (new class() { public function myMethod() { return "Hello!"; } })->myMethod(); //Result: Hello!
4)Reflection
Reflection是一個用來獲取有關執行時程式碼資訊的強大框架。讓你可以對類、介面、函式、方法和擴充套件執行反向工程,以構建對映引擎,IoC容器或文件框架等等。
下面是一個獲取匿名類所有方法的簡單例子:
$class = new ReflectionClass(new class() { public function getText() { return "Hello from anonymous class"; } }); $methods = $class->getMethods(); var_dump($methods);
更多資訊請看這裡:http://php.n
5)短陣列初始化
在用PHP程式設計的時候,我傾向於大量使用陣列,因為它們不僅功能強大,而且簡單易用。PHP的5.4.x版本使得更容易初始化:
$myArray = ["foo", "name" => "bar"];
6)DateTime類
PHP的5.2版本附帶DateTime類作為首選的操縱和格式化日期和時間的方式。
更多資訊請看這裡:http://php.n
7)Lambda表示式/匿名函式
匿名函式(有時也被稱為lambda表示式)是沒有指定名稱的函式。匿名函式可以被分配給一個變數,如下例所示:
$sayHi = function($toName) { echo("Hi " . $toName); }; $sayHi("Peter");
更多資訊請看這裡:http://php.n
8)array_map
array_map是一個不錯的函式,能幫助你對陣列中的每個元素執行計算。這在混合了匿名函式/ lambda表示式的時候特別好用。無論你為陣列中的元素提供什麼方法,array_map函式都適用:
$nameLengths = array_map(function($item) { return strlen($item); }, ["Sue", "Peter", "Michael"]); //Result: 3, 5, 7
需要注意的是,array_map可能會比foreach慢一點兒(特別當混合使用lambda表示式的時候更為明顯),所以要慎用於那些非常大的陣列。
更多資訊請看這裡:http://php.n
9)json_encode()和json_decode()
我最近傾向於大量使用JSON序列化和反序列化。PHP的json_encode和json_decode函式對此提供了大力支援。需要注意的是,json_encode會忽略私有成員:
class car { public $make = "Tesla"; public $model ="Model S"; private $errorCodes = ['34343', '545344']; } $carAsJson = json_encode(new car()); //Result: {"make":"Tesla","model":"Model S"}
更多資訊請看這裡:http://php.n
10)密碼的雜湊(hashing)和驗證
PHP通過password_hash和password_verify函式,用一種安全的方式來大力支援密碼的雜湊和驗證。因為使用非常簡單,所以我們就沒有必要重新發明輪子了。想檢視案例的話,請點選下面的文章:
作為PHP程式設計師,以上這10個PHP特性你一定要熟悉,感謝您的閱讀。
譯文連結:http://www.codeceo.com/article/10-php-feature-you-learn.html
英文原文:10 features in PHP that you really should learn (and use!)
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- PHP開發者應該學習、會用10個PHP7新特性PHP
- C# 中 10 個你真的應該學習(和使用!)的功能C#
- 10 個你應該知道的 PHP 比特幣開源專案PHP比特幣
- 您現在應該開始使用的 10 個 PHP 8.1 功能PHP
- 我們都應該學習PHPPHP
- 學習Mysql 你應該懂得MySql
- 你不應該忽略的五個機器學習專案機器學習
- Node.JS學習之二,你應該更多的使用constNode.js
- PHP的就業前景怎麼樣?PHP小白應該怎麼學習?PHP就業
- 推薦一個學習php8的新特性的文件PHP
- 你應該學習哪種程式語言?
- 你應該使用哪個雲資料庫?資料庫
- 你應該知道的Python3.6、3.7、3.8新特性Python
- 關於機器學習,你應該知道的3個熱門專業術語機器學習
- Java後端學習,你應該看那些書籍?Java後端
- 2018年,為什麼你該學PHP?PHP
- 你應該知道的16個linux命令Linux
- 【譯】13 個你應該選擇/考慮使用 Flutter 的理由Flutter
- PHP trait 特性在 Laravel 中的使用個人心得PHPAILaravel
- Java8新特性,你應該瞭解這些!Java
- 如果你要開發一箇中小學生學習數學的軟體,你應該找 誰去做使用者調研?
- ETL專業人員應該學習Hadoop的5個理由Hadoop
- 當下應該學習Python哪個版本?哪個方向好?Python
- 有的放矢,你應該在效能測試報告中使用的 10 個微觀指標測試報告指標
- 學習Tomcat,我們應該懂的Tomcat
- 你現在應該閱讀的7本最好的深度學習書籍深度學習
- 新手應該如何學習JAVAJava
- Homework 8 如果你要開發一箇中小學生學習數學的軟體,你應該找誰去做使用者調研?
- Time Machine 與 iCloud Drive:應該使用哪個來備份你的Mac?MacCloud
- 剛開始接觸MAYA的你,該學習哪個模組呢?
- 每個 Linux 新手都應該知道的 10 個命令Linux
- Laravel 你應該知道的幾個最佳實踐Laravel
- 新手如何學好Java?你應該躲開這幾個坑!Java
- Bash vs Python:你該使用哪個?Python
- Python老司機告訴你,學習Python應該讀哪些書!Python
- 2022年你應該掌握這些機器學習演算法機器學習演算法
- Java學習路線圖應該怎麼學習?Java
- 物聯網學習教程—c++學習應該注意的點C++
- 你應該知道的FlutterFlutter