基本をしっかり学ぼう!

2009年3月12日(木)
須田 超一

foreach文

 配列から要素を取り出すことができるforeach文は便利です。foreach文の形式は、2つの方法があります。1つ目の方法は、下記に示すように、配列の要素の値のみを取り出す方法です。

foreach (配列変数名 as $value) {
  echo $value;
}

 配列要素は、$valueの中に入ります。foreach文内部で、$valueを使えば配列の要素を順番に利用できるようになります(ここでは、echo文を使って出力するようにしています)。

 もう1つの記述方法は、配列のキーと値の両方を取り出す方法です。キーの値は$keyへ、値は$valueに入ります。

foreach (配列変数名 as $key => $value) {
  echo "$key $value";
}

 foreach文を使った例を、次に示します。

$station = array("渋谷","新宿","池袋");

foreach($station as $value) {
  echo $value . "
";
}

 foreach内部では、echo文で「$value
」が出力されますが、$valueには、「渋谷」「新宿」「池袋」の値が順番に入ります。よって、このプログラムを実行すると、「渋谷、新宿、池袋」が順番に出力されます。

 foreach文は、前述のfor文で書き換えることができます。次がその例です。

$station = array("渋谷","新宿","池袋");
$num = count($station);
for ($k=0; $k   echo $station[$k] . "
";
}

 ここで、countというPHPの関数が出てきています。countは、配列の要素数を数えてくれるものです。この例では、配列の要素は3つなので、$numには、「3」が入ります。

 上記の2つのプログラムは同じ処理結果になりますが、foreach文を使った方がシンプルに記述できることがわかります。そのほか、重要な制御文に、while文があります。while文の使い方に関しては、php.net(http://jp2.php.net/manual/ja/control-structures.while.php)を参考にしてください。

関数を使う

 PHPに組み込まれている関数を扱えるようになるとプログラミングの幅が広がってきます。今回は、date関数(http://jp2.php.net/manual/ja/function.date.php)を使ってみましょう。date関数は、日付・時刻の関数です(日付・時刻 関数:http://jp2.php.net/manual/ja/ref.datetime.php)。

 現在の日付が、2009年2月12日としたときに、「echo date("Ymd");」を実行すると、「20090212」と出力されます。ここで出てくる「Ymd」は、日付の出力フォーマットを指定する記号です。

 リファレンス(http://jp2.php.net/manual/ja/function.date.php)を見ると、以下のように書かれています。

・Yは、年。4けたの数字
・mは、月。数字。先頭にゼロをつける
・dは、日。2けたの数字(先頭にゼロがつく場合も)

 よって、フォーマットの形式を変更すれば、さまざまな表現が可能になります。例えば、「echo date("Y-m-d")」とすると、「2009-02-12」と出力され、「echo date("Y年m月d日")」とすると、「2009年02月12日」と出力されます。

 PHPを使いこなすためには、関数について知る必要があります。PHPの関数は沢山ありますので、少しずつ使える関数を増やしていくとよいでしょう(関数リファレンス:http://jp2.php.net/manual/ja/funcref.php)。

 最後に、今回勉強した項目を使って、簡単なプログラムを作ってみましょう。

 時間帯によって画面に表示するメッセージが変わるプログラムを連想配列およびif文を使って作ってみます。図3がサンプルプログラムになります。

 時間を調べるには、date("G")を使います。現在の時間を$hourに代入して、$hourの値をif文で評価して、連想配列のキーを設定するようにします。連想配列を使わなくても同じ機能のプログラムを作成できますが、ここでは練習を兼ねて連想配列を使っています。同じ機能のプログラムをswitch文で記述することもできますので、余裕のある方はトライしてみてください。

 このサンプルでは、if文の中に「and」が入っています。これは、論理演算子と言って、「and」の両脇の条件が両方とも正しい(trueと言います)場合に、if文の条件が正しい(true)と判断されます。

 つまり、「if (5
 論理演算子の「and」は、「&&」と書くこともできます。論理演算子としてもう1つ覚えておいてほしいものは、「or」(||とも書きます)です。これは、「A or B」と書いて、Aがtrueか、または、Bがtrueの場合に、「A or B」がtrueになります。

 andとorを組み合わせると、いろいろな条件式を作ることができます。例えば、「(A or B) and C」といった条件を作ることも可能です。これは、「AまたはBがtrueで、かつ、Cがtrue」の場合に、trueとして扱われます。

 いかがだったでしょうか。今回学習したものは、すべてプログラムの基本として知っておく必要がある内容です。一度には理解できなくても、学習を進めていけば自然に身についていきます。

 次回は、formを使ったプログラムの作り方について学習します。

株式会社ITコア R&Dグループリーダー/有限会社グローバルイーネットワーク 代表取締役

有限会社グローバルイーネットワーク代表取締役。ITコアでは、クラウドサービスやオープンソースの研究開発に従事。株式会社東芝で半導体メモリの開発やシステム開発を経験後、南カリフォルニア大学やボンド大学のビジネススクールで経営学を学びMBA取得。
ITと経営戦略を武器にして、多方面で事業活動を展開中。 2011年は、バルーンアート事業を立ち上げます。デジタルハリウッド講師(PHP/Ajax)。 アメブロはこちら

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています