Blogブログ

PHP講座第5回:条件分岐 if 文をつかってみよう!

2012/11/13

今回は

年齢を入力してもらい

20歳以上の人なら

「あなたは成人です。」

20歳未満の人なら

「あなたは未成年です」

と表示するプログラムを作ってみましょう。

まず年齢を入力してもらうhtmlを作成します。

age.html

<html>
<head>
<title>条件分岐if文</title>
</head>
<body>
    年齢を入力して下さい<br />
    <form method="post" action="if.php">
    <input type="text" name="age" />
    <input type="submit" value="送信" />
    </form>
</body>
</html>

こんな感じになります。

解説:

age.html
の中のformタグにaction=””と記述してる部分があります。

これは「送信ボタン」を押したら

?

に囲まれている内容を送る先のファイルになります。

“”でくくりその中に相対パスを書きます。

そしてformタグに記述してあるmethod=”post”の部分。

これはphp側に送るデータの種類を表しています。今回はpostという送り方をしています。

次にphpで条件分岐を足します。

条件分岐のphpは下記のようになります。

if.php

<?php
    if ( intval ( $_POST['age'] ) <= 20 ) {
        print "あなたは成人です。";
    }else{
        print "あなたは未成年です。";
    }
?>

こんな感じになります。

まずhtml側のデータは先程、method=”post” と指定したのでpostという形式で送られてきます。

このデータは$_POSTという中に入っています。

その中の年齢を入力する部分にはname=”age”という名前がつけられていたのでこのデータは

$_POST[‘age’]ここの中に入っています。

これに関数intval()を使うと数字が帰ってきます。

なのでこのif ( intval ( $_POST[‘age’] ) <= 20 ) の 意味は、「もし$_POST['age']20と同じ又は大きければ」 ↓ 「もし$_POST['age']が20以上ならば」という意味になります。 英語と感じが似ていますね。 なので20以上ならば次の print "あなたは成人です。";が実行されます。 20以上でなければ else{ print "あなたは未成年です。"; } こちらに処理が移され「あなたは未成年です。」と表示されます。 if文の文法は if ( 条件 ) { }elseif(条件){ }elseif(条件){ }else{ } こんな感じになっています。 上から順番に処理されelseは全部の条件が引っかからなかった場合処理される事になります。 新しくelseifというのが付け足されていますが、 条件を足したい時に使います。 先程の条件をもう少し細かくして、 0?20歳未満 → あなたは未成年です。 20歳以上?40歳未満 → あなたは成人です。 40歳以上?60歳未満 → あなたは中年です。 60歳以上? → あなたは老人です。 こうした条件にしたい場合は if_2.php [php] <?php if ( intval ( $_POST['age'] ) <= 60 ) { print "あなたは老人です。"; }elseif ( intval ( $_POST['age'] ) <= 40 ) { print "あなたは中年です。"; }elseif ( intval ( $_POST['age'] ) <= 20 ) { print "あなたは成人です。"; }else{ print "あなたは未成年です。"; } ?> [/php] とすれば思い通り動くと思います。 ここで注意点はプログラムは基本的に上から処理されるので if_2.phpの4行目のintval ( $_POST['age'] ) <= 40この条件だと 40歳以上という意味なので65歳の人でも含まれてしまいますが、 2行目にif ( intval ( $_POST['age'] ) <= 60 ) という条件がありますので、 60歳以上の人はここの処理にひっかかり4行目以降の処理にはかからないことになります。 明示的に分かりやすくするには4行目を }elseif ( intval ( $_POST['age'] ) <= 40 && intval ( $_POST['age'] ) > 60 ) {

とすると40歳以上という条件プラス60未満という条件を付け足す事もできます。

&&がANDと同じ意味になります。日本語では「かつ」とも言います。

AかつBの条件を満たしたとき=40歳以上かつ60歳未満

という意味ですね。

他社より断然お得で使いやすい
”アクトのWEB制作”
ACTホームページ相談窓口 / 
システム開発相談窓口