Computer >> Máy Tính >  >> Lập trình >> PHP

Biểu thức trả về của trình tạo trong PHP 7


Trong các phiên bản trước của PHP, các hàm của trình tạo không thể trả về biểu thức, nhưng từ PHP 5.5, biểu thức trả về của trình tạo được thêm vào biểu thức hiện có. Bằng cách sử dụng biểu thức trả về của trình tạo, thật dễ dàng sử dụng câu lệnh trả về trong trình tạo và nó cũng trả về giá trị của biểu thức cuối cùng.

  • Bằng cách sử dụng biểu thức trả về của trình tạo, chúng ta chỉ có thể trả về giá trị của biểu thức nhưng không thể trả về tham chiếu. Bằng cách sử dụng Generator ::getReturn () mới , chúng tôi có thể tìm nạp giá trị có thể được sử dụng sau khi hàm trình tạo kết thúc việc cung cấp các giá trị đã xác định.
  • Sử dụng trình tạo PHP 7, chúng tôi có thể trả về giá trị cuối cùng từ các biểu thức trả về của trình tạo. Chúng tôi có thể truy xuất biểu thức trả về bằng cách sử dụng $ Trình tạo> getReturn () bởi vì PHP 7 cho phép trình tạo trả về giá trị cuối cùng từ việc đếm đồng quy trình trong chương trình có thể được giữ bởi mã máy khách đang thực thi trình tạo.

Biểu thức trả về của trình tạo:Ví dụ 1

<html>
<head>
<title> PHP 7 Feature : Generator Return Expressions </title>
</head>
<body>
<?php
   $generator = (function(){
      yield "five";
      yield "six";
      yield "seven";
      return "eight";
   })
   ();
   foreach ($generator as $val){
      echo $val, PHP_EOL;
   }
   echo $generator ->getReturn(), PHP_EOL;
?>
</body>
</html>

Đầu ra

Đầu ra cho chương trình PHP trên sẽ là:

five six seven eight

Giải thích cho chương trình PHP 7 ở trên -

  • Chúng tôi có thể viết đoạn mã trên trong một trình chỉnh sửa và có thể viết mã HTML bắt buộc như được đưa ra trong ví dụ trên và phần nội dung của HTML đưa mã PHP 7 thực tế vào biểu thức trả về của trình tạo.
  • Thứ hai, một hàm có tham chiếu là $ Trình tạo được khai báo.
  • Khi tham chiếu đến trình tạo $, chúng tôi đã xác định lợi nhuận "năm", "sáu", "bảy" và "tám".
  • Cuối cùng, chúng tôi lặp lại hàm “$ Trình tạo” cho đến khi kết thúc (PHP_EOL) và lặp lại các giá trị của kết quả cùng với biểu thức trả về của trình tạo.

Biểu thức trả về của trình tạo:Ví dụ 2

<html>
<head>
<title> PHP 7 Feature: Generator Return Expressions Example </title>
</head>
<body>
<?php
   function gen(){
      yield 'A';
      yield 'B';
      yield 'C';
      return 'gen-return';
   }
   $generator = gen();
   var_dump($generator);
   foreach ($generator as $letter){
      echo $letter;
   }
   var_dump($generator->getReturn());
?>
</body>
</html>

Đầu ra

Đầu ra cho chương trình PHP trên sẽ là -

object(Generator)#1 (0) { }ABCstring(10) "gen-return"