<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    10個你應該學習使用的PHP特性

    時間:2025-02-22 14:57:09 php語言 我要投稿
    • 相關推薦

    10個你應該學習使用的PHP特性

      本文主要總結了10個關于PHP的特性,這些PHP特性對于PHP開發者來說都是應該學習和使用的,譯文如下:

    10個你應該學習使用的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特性你一定要熟悉,感謝您的閱讀。

    【10個你應該學習使用的PHP特性】相關文章:

    你應該學習的10個PHP特性05-28

    PHP語言的使用特性04-23

    新手應該如何學習PHP語言12-19

    PHP應該如何系統學習04-22

    零基礎學習PHP應該怎么學習04-23

    學習PHP語言應該知道的那些事06-26

    PHP語言有哪些特性02-20

    PHP語言的特性有哪些06-04

    零基礎學習PHP應該怎么學03-01

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人