12/08/2018, 17:07

Giới thiệu về PHP 7.1 - Bản nâng cấp đáng giá của người tiền nhiệm PHP 7.0

PHP 7.0 ra đời với những cải tiến vô cùng vượt bậc, nhưng với những cải tiến đó thì dường như vẫn là chưa đủ với một ngôn ngữ phổ biến như PHP. Và chỉ sau khi PHP 7.0 ra mắt được gần một năm thì PHP lại giới thiệu đến cộng đồng phiên bản PHP 7.1 với các tính năng mới vô cùng hữu dụng, và khắc phục ...

PHP 7.0 ra đời với những cải tiến vô cùng vượt bậc, nhưng với những cải tiến đó thì dường như vẫn là chưa đủ với một ngôn ngữ phổ biến như PHP. Và chỉ sau khi PHP 7.0 ra mắt được gần một năm thì PHP lại giới thiệu đến cộng đồng phiên bản PHP 7.1 với các tính năng mới vô cùng hữu dụng, và khắc phục hầu hết các lỗi mà PHP 7.0 gặp phải.

Điều đầu tiên chúng ta cần xét đến chính là hiệu năng của nó. PHP 7.0 ra đời cho thấy sự cải thiện hiệu năng đáng kể so với những phiên bản tiền nhiệm. Và theo kết quả so sánh trên Symfony framework, PHP 7.1 thậm chí còn nhanh hơn PHP 7.0

Nullable types

  • Với PHP 7.1 chúng ta có thể xác định kiểu giá trị trả về của hàm là một kiểu cụ thể hoặc là null bằng cách thêm ? vào kiểu dữ liệu ràng buộc trả về.
<?php
  function testReturn(?float $param): ?float
  {
      return null;
  }
?>

Tham số truyền vào

  • Cũng như giá trị trả về, các thám sô truyền vào chúng ta cũng có thể xác định được kiểu dữ kiệu truyền vào cụ thể hoặc null bằng ký tự ?
<?php
  function testReturn(?float $param): ?float
  {
      return $param;
  }
  testReturn(5.5); //5.5
  testReturn(null); //null
?>

Hàm void

  • Bổ sung hàm không có dữ liệu trả về ( không có return , hoặc return;)
<?php
  function swap(&$left, &$right): void
  {
    $tmp = $left;
    $left = $right;
    $right = $tmp;
  }
?>

Chia mảng đối xứng

  • Nếu như trước đây ta sử dụng hàm list() để gán phần tử của mảng cho biến thì giờ chúng ta có thể sử dụng dấu [ ] thay cho hàm list()
<?php
  $arr = [
    [0, 'Dinh Long Hai'],
    [1, 'Nguyen Tuan Anh']
  ];
  [$id, $name] = $arr[0];
  echo $id; //0
  echo $name; //Dinh Long Hai
?>

Phạm vi của hằng trong class

  • Với PHP 7.1, chúng ta có thể khai báo phạm vi của hằng trong class
<?php
  class Member
  {
      const A = 1;
      public const B = 1;
      protected const C = 1;
      private const D = 1;
  }
?>

Đa Exception

<?php
try {
      // some code
  } catch (FirstException | SecondException $e) {
      // handle first and second exceptions
  }
?>

Hỗ trợ key cho hàm list()

  • Giờ đây chúng ta có thể sử dụng key cho hàm list() hoặc [ ] trong PHP 7.1
<?php
  $arr = [
    ['id' => 0, 'name' => 'Dinh Long Hai'],
    ['id' => 1, 'name' => 'Nguyen Tuan Anh'],
  ];
  list('id' => $id, 'name' => $name) = $arr[0];
  // or
  ['id' => $id, 'name' => $name] = $arr[0];
?>

Xem thêm

  • Ngoài ra còn một số chức năng mới nhưng ít được sử dụng. Bạn có thể tham khảo tại đây

Core PHP

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

Session

  • session_create_id()
  • session_gc()

Còn khá nhiều function mới, chúng ta có thể xem thêm tại đây

Constants

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY
  • FILTER_FLAG_EMAIL_UNICODE
  • MT_RAND_PHP

Ở đây mình chỉ giới thiệu một số constants chính, bạn có thể xem thêm một số khác tại đây

  • http://php.net/manual/en/migration71.new-features.php
  • https://www.cloudways.com/blog/whats-new-in-php-7-1/
0