読者です 読者をやめる 読者になる 読者になる

Web言語のお勉強~ど素人が往く~

かつてVB6を1年くらい触った事があるだけのど素人がWeb言語に挑戦します。勉強結果を随時発表します。

PHPのお勉強「ループ文の脱出はbreak;で」


本日のお題はループ文の脱出方法です。

ループの勉強4日目です。

本日のPHP講師には再びid:m_shige1979先生をお呼びしております。
先生よろしくお願いします。

id:m_shige1979先生


とりあえず、returnだと処理がその時点で終了してが出力できない可能性もあるのでbreakでループを抜けるようにしないと・・・。
returnはfunctionを抜ける場合に使用します。

これは前回の私のコードへのご指導です。

前回のコード。

<?php
    // TABLE枠組み
    echo '<table>';

    for ($i = 0; $i < $imgCnt; $i++)
    {
        // もう一方のカウントオーバーでもやめる
        if ($i > $nameCnt)
        {
            return;
        }
        
        // <中略>
    }

    echo '</table>';
?>

お恥ずかしや(>_<)
確かにreturnで抜けるとループだけじゃなくて、関数や処理全体からも抜けてしまいますね・・・。
失礼しました。
初心者丸出しのコードになっていました(^^;

id:m_shige1979先生、教えて頂きどうもありがとうございます(^^)/

プログラミング

さてさて、本日は時間がないので教えてもらった箇所を直してアップし直してみましょう!

09:38 実装開始。

・・・

一回ミス。上記のif文判定間違ってた・・・。

・・・

09:40 実装完了。

2分で実装できました。

動作画面

f:id:MoneyReport:20140322094617p:plain

ソースコード

<?php
    $arrayImg = array('http://omt.shinobi.jp/images/hatena_ninja_l.png',||<
                      'http://static.evernote.com/site-mem-32.png',
                      'http://omt.shinobi.jp/images/pocket_ninja_l.png',おぉ!結構きれいに出せた!
                      'http://omt.shinobi.jp/images/tumblr_icon_blue_l.png',成功成功♪
                      'http://omt.shinobi.jp/images/twitter_tweet_ninja_l.png',
                      'http://omt.shinobi.jp/images/google_plusone_ninja_l.png',
                      'http://omt.shinobi.jp/images/rss_button_l.png');

    $arrayName = array('はてなブックマーク',
                       'エバーノート',
                       'ポケット',
                       'タンブラー',
                       'ツイッター',
                       'ググタス');

    $imgCnt = count($arrayImg);
    $nameCnt = count($arrayName);

    // TABLE枠組み
    echo '<table>';

    for ($i = 0; $i < $imgCnt; $i++)
    {
        // もう一方のカウントオーバーでもやめる
        if ($i >= $nameCnt)
        {
            break;
        }
        
        echo '<tr><td>';
        echo '<img src='.$arrayImg[$i].'>';
        echo '</td><td>';
        echo '<b>'.$arrayName[$i].'</b>';
        echo '</td><tr>';
    }

    echo '</table>';
?>

if文の判定が「>」だとダメで「>=」じゃないと効きませんでした(^^;
わざと$arrayImgの配列を1つ多くしてありますので、最後のRSSの画像はbreakでループを抜けているために表示されません。

ループ (角川ホラー文庫)

ループ (角川ホラー文庫)