ホーム

スタッフブログ

2015年6月11日

PHP初心者講座その③

おはようございます。Aです。

引き続きPHP初心者講座の第3弾。
前回は入力フォームに記述した文字を表示したところまで行いました。→前回

しかし。”入力フォームに文字が入っていない”場合の処理がまだ済んでいませんでした。

PHPエラー”undefined index”を読む

前回はエラー制御演算子”@”でエラーメッセージを口封じしていましたが、
ソースコードから“@”を除去して実行して、エラーメッセージを見てみます。

blog_abe7

このオレンジの表示が出るたび、嫌な汗が出ます。
「ミスに気づけてよかった」と前向きに考えるべきなんですけどね。

さて。このエラーメッセージが何を言ってるのかといいますと
「注意(Notice):未定義(undefined)の要素(index)”naiyou”が1.phpの14行目にあります!」
って感じ。実際にコードを見てみると…

blog_abe62

14行目には$_POST[‘naiyou’]とあります。これが指定されていないって事ですね。
じゃあ、“もし”$_POST[‘naiyou’]の中身が何も無い場合は何か特別な処理を施してみましょう。
“もし”は英語で”IF”。所謂IF文ってやつをソースに追加してみます。

制御構文(IF ELSE)

PHPに限らずIF文はどのプログラム言語でも目にすると思います。
“if(条件式){条件が真のときの処理}else{条件が偽のときの処理}”って奴ですね。

今回は
$_POST[‘naiyou’]の中身がある場合→その中身を表示
$_POST[‘naiyou’]の中身が何も無い場合→「何も入力されていません」という表示
という仕様にしてみたいと思います。

上のように、「まずは仕様を日本語にする」というアドバイスは代表奥野から頂いたものでして。
破綻した日本語で綴られた仕様のプログラミングは捗らないことを日々感じています。

で。実際に実装してみるとこんな感じの表示に。
何も入力していない場合なので、「何も入力されていません」と表示されています。

blog_abe81

追加したコードは下記画像の13-19行目ですね。
blog_abe9

注目すべきは”isset($_POST[‘naiyou’]”の部分。
いきなり出てきた”isset”とは何ぞやというお話になります。

PHP関数”isset”

“何らかの処理を行って、場合によってはその結果を返す”モノが関数な訳ですが
PHPには便利な関数がなんと4000個もあるのだとか。
先の”isset”はそのうちの1つで、PHPマニュアルによるとこう書いてあります。

「isset-変数がセットされていること、そしてNULLでないことを検査する」
加えて、「NULLに設定されている変数を調べた場合、FALSEを返す」ともあります。

NULLっていうのは「何も無い」って意味でして、
$_POST[‘naiyou’]の中身が”何も無い”場合には
$_POST[‘naiyou’]はNULLに設定されているというわけです。

念のため、FALSEは”偽”。逆はTRUEで”真”ですね。

“TRUE”と“FALSE”と”NULL”。これらの概念を踏まえて、
if文の形式と先のコードを見比べてみましょう。

—————————————————————————————————-
“if(条件式){条件が真のときの処理}else{条件が偽のときの処理}”
—————————————————————————————————-
if(isset($_POST[‘naiyou’])){
echo “入力した内容は”; -①
echo $_POST[‘naiyou’]; -②
echo “です”; -③
}else{
echo “何も入力されていません”; -④
}
—————————————————————————————————-
ここでいう条件式がisset($_POST[‘naiyou’])にあたって、
条件が真のときの処理は①②③の部分。偽のときの処理が④の部分にあたっています。
$_POST[‘naiyou’]の中身が何も無い(NULL)
→isset($_POST[‘naiyou’])の判定がFALSE
→④の処理を行う→「何も入力されていません」という表示
と読めると思います。

たかが7行分のコードですけど、厳密な日本語で表現すると2000字も使うんですね。
というか、$_POST[‘naiyou’]っていう単語だけで16字も使ってる!
じゃあ次回はこの$_POST[‘naiyou’]を短い変数に入れて、簡潔にしてみます。
というところで今回はここまで。ありがとうございました。

求人バナー

このページの上部へ戻る