【 PHP 】PHP8に入門してみた 170日目 PHPの基本 ( ユーザー定義関数 returnもできるジェネレータ)

PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。

ユーザー定義関数

ジェネレータでもreturnできる

ジェネレータの処理でreturnを記述すると、最後の結果を返すことができます。

この場合の受け取り方はgetReturn()という関数を(メソッド?)を使うためちょっと特殊です。

<!DOCTYPE html>

<html>

<head>
    <meta charset="UTF-8" />
    <title>こんにちは!</title>
    <!-- Bootstrapを有効化 -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" />
</head>

<body>
    <?php
    function myGen()
    {
        yield 'あいうえお';
        yield 'かきくけこ';
        yield 'さしすせそ';

        return "これがリターンよ!";
    }

    $gen = myGen();
    foreach ($gen as $value) {
        print $value . '<br />';
    }

    print "「{$gen->getReturn()}」という返答がありました。";

    ?>
</body>

</html>

メモ

もう少し使い勝手が良かったらなぁと思います。

おしい!

ちなみにyieldの処理が終わってないのにいきなりgetReturn()するとエラーとなります。

PHPPHP

Posted by raika@blog