yieldのお話

ヒューマンリソシア 2016/1/21(木) 21:00 tweet14このエントリーをはてなブックマークに追加 印刷用
※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

ヒューマンリソシア株式会社はコラム「yieldのお話」を公開しました。
今回は、yieldのお話をしていきたいと思います。
「ジェネレータ」という言い方をするこの機能は、yieldキーワード(yield 文)が重要になります。
構文的にはPHP5.5からなので、比較的最近になって出てきたものですね。PHP5.4系以下だと動きませんので、
確認のさいはご注意ください。

「何ができるのか」ですが、一番分かりやすい例として「配列のように、ループに対して値を提供する」機能が
あります。
実際にコードを書いてみてみましょう。

function hoge() {
for($i = 0; $i < 10; $i ++) {
yield $i;
}
}
//
foreach(hoge() as $v) {
echo "{$v}\n";
}

yield文のところで「処理を一端中断して、値を返す」という動きをします。
で、関数hoge()が再びcallされると「先ほどの中断した箇所から関数の処理を再開し」
「yield文のところで処理を一端中断して、値を返す」を繰り返していきます。
ですので、yieldを「関数を一時停止、再開できる機能」である、と説明する事もあります。

…さて。幾人かの人がきっとこう思ったんじゃないかと思います「配列でいいぢゃん」。
はい、その通りです。
その通りです。じゃぁ「yieldは不要なのか?」というと、必ずしもそうではありません。

この続きは以下をご覧ください
http://resocia.jp/column/5205/

tweet14このエントリーをはてなブックマークに追加
用語集 PHP
日本赤十字社 東日本大震災 義援金募集
Web担メルマガでラクラク情報ライフを
注目記事が毎週手もとに届いて見逃さない
要チェックのセミナー情報もゲットできる
編集長コラムを一足先に読める
―― 10万人が読んでいる、Web担必読メルマガです

今日の用語

アンカーテキスト
HTMLでページからページへジャンプする「リンク」に使われるテキスト(文字列 ... →用語集へ

連載/特集コーナーから探す

インフォメーション

Web担のメルマガを購読しませんか?
Web担の記事がコンパクトに毎週届くメールマガジン「Web担ウィークリー」は、10万人が読んでいる人気メルマガ。忙しいあなたの情報収集力をアップさせる強い味方で、お得な情報もいち早く入手できます。

Web担に広告を掲載しませんか?
購読者数10万人のメールマガジン広告をはじめとする広告サービスで、御社の認知向上やセミナー集客を強力にお手伝いいたします。

サイトマップ
RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]

GOLD SPONSOR
さくらインターネット株式会社株式会社KDDI ウェブコミュニケーションズ株式会社日本レジストリサービスHP Softwareトランスコスモス株式会社株式会社ハイパーボックスDomain Keeperアドビ システムズ 株式会社
SPONSOR
株式会社キノトロープ株式会社アイレップ株式会社ニューズ・ツー・ユーシックス・アパート株式会社ウェブアンテナ株式会社サイバーエージェント富士通株式会社SitecoreYahoo!プロモーション広告Oracle