[PHP入門] ジェネレータ(yield命令)とは? メリット・使い方も分かりやすく解説します!

PHP5.5 からジェネレータが導入されました。

この記事ではジェネレータ(yield命令)とは何か、ジェネレータ(yield命令)のメリット、ジェネレータ(yield命令)のサンプルプログラムを解説していきます。

1.ジェネレータ(yield命令)とは?

ジェネレータ(yield命令)は戻り値を返すreturnと似たような役割を担っています。

しかし、通常の関数がreturn命令で値を返したらその場で終了するのに対して、ジェネレータはyield命令を利用することで、その時々の値を返すことができます。

ジェネレータはメモリ内で大量の配列を組み立てる場合に役に立ちます。

ジェネレータはその都度、メモリ展開と破棄を行うので、メモリの節約にもなります。




2.ジェネレータ(yield命令)のメリット

サンプルコードを説明する前に、ジェネレータを使用するとどういうメリットがあるかをお話します。

配列を作成する事なくforeachの処理をする場合、ジェネレータ関数で処理できるのでメモリの節約が出来る可能性があります。

また、複雑なプログラム記述を見やすく出来る場合もあるかと思います。

とても有意義な機能ですので、是非使い方をマスターして頂きたいです。




3.ジェネレータ(yield命令)のサンプルプログラムで使い方をみていこう!

次にジェネレータであるyieldのサンプルプログラムを見ていきましょう。

ジェネレータであるyieldはreturnと似た命令で関数の値を呼び出しもとに返します。

return命令は値を返したらその場で終了するのに対して、yield命令は処理を一時停止することができます。

そのため、次に呼び出された時、続きから処理を再開することができます。

foreach命令で呼ばれたyieldNumber()は順番にyieldの値を返して$numberに格納します。

その結果、「123」と表示されます。




4.PHPをもっと学びたい方へ

最後まで読んで頂きまして、ありがとうございます。

PHPをもっと学びたいという方はいないでしょうか?

上記のように考えている方にオススメの教材があります。

確かな力が身につくPHP「超」入門

この本ではPHPの基礎構文だけでなく、商品管理システムを作りながら、PHPをより実践的に学ぶことができます。

そのため、PHPを一通り学んだ方にオススメできる一冊です。

是非、挑戦してみてはいかがでしょうか?

以下の記事でPHPを学ぶことができるオススメの本をまとめていますので、よかったらご覧になって下さい。

[初心者~中級者向け] PHPを学ぶことができるおすすめの本

Udemy

UdemyではPHPを学ぶことができる講座を多数取り扱っています。

以下の記事でPHPを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[2021年最新版] Udemy(ユーデミー) おすすめのPHP講座

TechAcademy

TechAcademy [テックアカデミー]ではPHPを学ぶことができます。

無料体験も行っているので是非、体験してみてはいかがでしょうか?

TechAcademyについてまとめた記事もありますので、よかったらご覧になって下さい。

いくら? 悪評は? TechAcademy(テックアカデミー)とは? 口コミもまとめてみました!




5.ポイント

ポイント
  • ジェネレータはyield命令を利用することで、その時々の値を返すことができます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です