PHP Generator::getReturn() 方法

返回上一级

PHP Generator::getReturn() 方法用于获取一个生成器使用 return 语句返回的值。

( PHP 7 )

注意: 该方法是 PHP 7 新增的,在 PHP 5 中是无效的。

方法原型

PHP Generator::getReturn() 方法的原型如下

public mixed Generator::getReturn ( void )

调用该方法不用传递任何参数,且会返回生成器使用 return 语句返回的值。

如果生成器仍在执行中,那么调用 getReturn() 方法将会抛出一个异常

如果生成器没有使用 return 语句显式返回,那么调用 getReturn() 方法将会返回 NULL

返回值

在生成器完成执行后,返回生成器中使用 return 语句返回的值

范例一

我们写一个范例简单演示下 getReturn() 语句的使用

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

运行结果如下

1
2
3

前面章节中我们有说过,如果生成器在执行过程中遇到了 return 语句,那么会立即终止生成器的执行。

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;

    yield 4;

    return 5;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

运行结果如下

1
2
3

如果生成器仍在执行中,那么调用 getReturn() 方法将会抛出一个异常

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;

    yield 4;

    return 5;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
    echo $gen->getReturn(), PHP_EOL;
}
echo $gen->getReturn(), PHP_EOL;

运行结果如下

Fatal error: Uncaught Exception: Cannot get return value of a generator that hasn't returned in

如果生成器没有使用 return 语句显式返回,那么调用 getReturn() 方法将会返回 NULL

<?php

$gen = (function() {
    yield 1;
    yield 2;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}
var_dump($gen->getReturn());
echo PHP_EOL;

输出结果如下

1
2
NULL

返回上一级

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.