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); |
5)短數組初始化
在用PHP編程的時候,我傾向於大量使用數組,因為它們不僅功能強大,而且簡單易用。PHP的5.4.x版本使得更容易初始化:
$myArray = ["foo", "name" => "bar"];
6)DateTime類
PHP的5.2版本附帶DateTime類作為首選的操縱和格式化日期和時間的方式。
7)Lambda表達式/匿名函數
匿名函數(有時也被稱為lambda表達式)是沒有指定名稱的函數。匿名函數可以被分配給一個變量,如下例所示:
$sayHi = function($toName) { echo("Hi " . $toName); }; $sayHi("Peter"); |
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表達式的時候更為明顯),所以要慎用於那些非常大的數組。
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"} |
10)密碼的哈希(hashing)和驗證
PHP通過password_hash和password_verify函數,用一種安全的方式來大力支持密碼的哈希和驗證。因為使用非常簡單,所以我們就沒有必要重新發明輪子了。想查看案例的話,請點擊下面的文章:
作為PHP程序員,以上這10個PHP特性你一定要熟悉,感謝您的閲讀。
-
php使用fgetcsv讀取csv文件出現亂碼的解決方法
PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。以下是小編為大家搜索整理的php使用fgetcsv讀取csv文件出現亂碼的解決方法,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!一般來説在php中...
-
PHP數組長度的技巧
PHP程序開發快,運行快,技術本身學習快。嵌入於HTML:因為PHP可以被嵌入於HTML語言,它相對於其他語言。編輯簡單,實用性強,更適合初學者。以下是小編為大家搜索整理的PHP數組長度的技巧,希望能給大家帶來幫助!更多經常內容請及時關注我們應屆畢業生考試網!在php中獲取數...
-
如何加速你的PHP程序
我一直認為PHP的運行速度是非常的理想的,尤其是Zend引擎的加速之後。但是PHP仍然有加速的可能,你知道嗎?一起來看看如何加速你的PHP程序吧。所有的一切都始於如何優化PHP的編譯嘗試使用針對CPU型號的特殊編譯參數-msse-mmmx-mfpmath=sse在編譯的`時候添加-03參數...
-
php獲取當前時間的毫秒數詳解
php本身沒有提供返回毫秒數的函數,但提供了一個microtime()函數,藉助此函數,可以很容易定義一個返回毫秒數的函數。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!php本身沒有提供返回毫秒數的函數,但提供了一個microtime()函數,...