プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

【PHP入門】yield構文の使い方を説明します

投稿日:

記事の内容


この記事では、PHPのyield構文について説明します。
yieldはジェネレーター関数の一つです。
PHPのバージョンは、7系です。

yieldのメリット

yeildには、以下の2つのメリットがあります。

  • 処理をまとめることができる
  • メモリの節約ができる

では、実際に使い方を見ていきたいと思います。

yieldの使い方

ここでは、「1から3までをループする」という部分を共通化して、yieldにしました。
ここで最初に確認して欲しいことは、処理の流れです。
ジェネレーター関数の中とforeachの中が、交互に実行されているのが、yieldの特徴です。
そして、もう一点、重要なポイントがあります。
このプログラムでは、以下の3つのことを実行していますが、ループを回しているのは一回だけです。
それは、ジェネレーターにより「1から3まで」というループ処理を共通化しているから、できることです。

  • 「1から3まで」を表示する
  • 「1から3まで」に2を掛けて表示する
  • 「1から3まで」を合計する

ジェネレーターを使わないで、同じプログラムを書いた場合は、以下のようなコードになります。
この場合、ループ処理「for」が3回、記述されていることがわかります。

yieldを連想配列にすることもできます。

yieldのメモリ効率を確認

通常のループを使う場合とyieldを使った場合では、メモリの消費量に差がつきます。
配列の中身を順番に処理したい時に、「配列を全て作ってから処理をする」と「配列を作りながら処理をする」という2つの差が出た形です。

配列に保存しようとした値が多すぎて、PHPでエラーが出ます。

yieldを使った場合には、エラーが出ません。

まとめ

この記事では、yieldというジェネレーター構文の説明をしました。
何らかの処理をまとめたいと思った時には、yieldを使うことも検討してみて下さい。

Good luck for your engineer life!

PHPをより詳しく勉強したい人は、この記事を読んで下さい

PHPの学習でオススメの本と動画【2020年最新】

初心者向け【入門編】 いちばんやさしい PHP の教本 「いちばんやさしいシリーズ」のPHP版です。 とりあえず、PHPをさわって動かしてみたいという人には、オススメの本です。 WordPress 仕事の現場でサッと使える! PHPの勉強で ...

続きを見る


30代からプログラミングを始めようか迷っている人は、この記事を読んで下さい

30代からプログラミングを始めることは可能なのか?【頑張ればギリギリセーフ】

エンジニアは人気の職種だと聞いていますが、若い人達が多い印象です。 30代から始めても間にあいますか? 2030年には79万人のエンジニアが不足 まずは、今後、10年間以上に渡るエンジニアの需給について確認しましょう。 自分の身を預けたいと ...

続きを見る


プログラミングスクールに行くか迷っている人は、この記事を読んで下さい

なんとなく、エンジニアになりたい人が無料のプログラミングスクールに行くべき理由【2019年12月の最新】

有料や無料のプログラミングスクールが多すぎて、どこにしようか迷っています。 無料のプログラミングスクールは、お得そうに見えますが、実際の所はどうですか? メリットやデメリットなどがあれば教えて下さい。 無料のスクールを推す理由 まずは、私が ...

続きを見る


自分がプログラミングスクールに行っても大丈夫か知りたい人は、この記事を読んで下さい

プログラミングスクールに通って挫折する人と上手くいく人の違い

スクールに通っている人の3パターン プログラミングスクールに通っている人のパターンを整理すると、以下の3パターンに分かれます。 それぞれのタイプの特徴を、もう少し詳細に説明していきます。 それぞれのタイプの特徴 大した努力をせずに文句ばかり ...

続きを見る


ゼロからWebエンジニアになりたい人は、この記事を読んで下さい

ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 私が定義するWebエンジニア まず、最初に以下の図を見て下さい。 これが、Web業界で働く人達の大分類です ...

続きを見る


独学で実務っぽい経験を積みたい人は、この記事を読んで下さい

エンジニアが独学で実務経験っぽいことを学ぶ方法

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? スクールの理想と現実 これからプログラミングを学ぼうとしている人が描 ...

続きを見る

関連コンテンツ

-PHP, プログラミング

Copyright© プログラミング道場 , 2020 All Rights Reserved Powered by AFFINGER4.