Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Biểu thức trả về Generator (Generator Return Expressions) trong PHP 7

Trong các phiên bản PHP trước, hàm generator không trả về biểu thức, nhưng từ PHP 5.5, generator return expression được thêm vào. Dùng generator return expressions, dễ dàng dùng return trong generator và trả về giá trị biểu thức cuối.

  • Chỉ trả về giá trị biểu thức, không trả về tham chiếu. Dùng phương thức mới Generator::getReturn() lấy giá trị sau khi generator kết thúc yield các giá trị định nghĩa.
  • Dùng PHP 7 generator, có thể trả giá trị cuối từ generator return expressions. Lấy biểu thức trả về bằng $generator->getReturn() vì PHP 7 cho phép giá trị cuối được trả về bởi generator từ coroutine counting trong chương trình client code thực thi generator.

Ví dụ Generator Return Expressions 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>

Kết quả

five six seven eight

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

  • Viết code trong editor với HTML như ví dụ, phần body chèn code PHP 7 generator return expression.
  • Khai báo hàm tham chiếu $generator.
  • Trong $generator: yield "five", "six", "seven", "eight".
  • Cuối cùng lặp qua "$generator" đến cuối (PHP_EOL) in giá trị yield cùng generator return expression.

Ví dụ Generator Return Expressions 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>

Kết quả

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