文字の一致・不一致:「佐藤さん」に挨拶する [PHP入門]
はじめに
前回は会計とおつりを計算しました。
今回は文字が一致するかどうか、という比較を行います。
シチュエーション
あなたは 100 人が集まるパーティーに来ています。
知り合いの佐藤さんも来ているはずなので、見かけたら呼び止めましょう。
比較とは
前回は所持金と支払額を比較しました。
例:
$所持金 > $支払い額
このように 2 つのデータをくらべる のが比較です。
結果は True(Yes)か False(No)のどちらかになります。
これを 真偽値(ブール値) と呼びます。
IF 文では、比較の結果によって処理を振り分けます。
if ($所持金 > $支払い額) {
// A ブロック(所持金が足りている場合)
} else {
// B ブロック(所持金が不足している場合)
}
比較式が正しければ A ブロック、そうでなければ B ブロックが実行される、という仕組みです。
文字列の一致・不一致
文字列の比較では、基本の次 2 つを覚えましょう。
- 一致
== - 不一致
!=
文字列とは?
"あいうえお" のように、文字や記号の並びを扱うデータ型のことです。
一致
"佐藤さん" == "加藤さん";
こちらは False です。
プログラミングでは ==(イコール 2 回)で「同じかどうか」を比較します。
=(イコールひとつ)は代入なので混同しないように!
不一致
こちらは True です。
"佐藤さん" != "加藤さん";
!= は Not Equal(等しくない)という意味です。
!(ビックリマーク)は「否定」を表します。
完全一致の例
次はすべて「不一致」と判定されます。
- "東京" と "東京都"
- "こんにちは" と "コンニチハ"
- "Tokyo" と "tokyo"
人間から見ると似ていても、プログラムは厳密に「同じ文字列か」を判定します。
型の比較
PHP には「型」まで比較する === と !== があります。
1 == "1"; // True
1 === "1"; // False
== -> 数字と文字列の "1" を同じとみなす(暗黙の型変換あり)
=== -> 型も含めて比較する(厳密比較)
入門では == を使えば十分です。
本格的にコード品質を高めるなら === を意識しましょう。
佐藤さんにあいさつするプログラム
ではコードを書いてみましょう。
ステップ 1:骨組み
// もし、佐藤さんを見かけたら
// 声をかけて呼び止める
ステップ 2:IF 文を追加
// もし、佐藤さんを見かけたら
if (式) {
// 声をかけて呼び止める
}
ステップ 3:声をかける処理を追加
// もし、佐藤さんを見かけたら
if (式) {
// 声をかけて呼び止める
echo '佐藤さん?';
}
ステップ 4:比較式を作る
// もし、佐藤さんを見かけたら
if ($person == "佐藤さん") {
// 声をかけて呼び止める
echo '佐藤さん?';
}
ステップ 5:変数を定義して完成!
$person = "佐藤さん";
// もし、佐藤さんを見かけたら
if ($person == "佐藤さん") {
// 声をかけて呼び止める
echo '佐藤さん?';
}
実行すると "佐藤さん?" と表示されます。
ただし、この方法では "佐藤健さん" や "佐藤二郎さん" などは一致と判定されず、スルーされます。
より柔軟な文字列の比較はレベルアップしてからチャレンジしましょう。
まとめ
基本の比較演算子
-
==: 一致(文字列が同じなら True) -
!=: 不一致(文字列が違えば True)
厳密な比較
-
===: 型も含めて一致(例: 数字の 1 と文字列 "1" は False) -
!==: 型も含めて不一致
注意点
- プログラミングでは
=(代入)と==(比較)は別物。混同しないこと。 - 比較は「完全一致」。
例: "東京" と "東京都" は不一致。
"Tokyo" と "tokyo" も不一致。
使い分けの目安
- 入門:
==と!=を使えば十分 - 実務・品質重視:
===と!==が必須
本記事は弊社の次プログラミング教材の要約です。
PHP ファーストステップ講座 003 文字や数値を比較する
ほかにも FOR文・配列・条件分岐などを小ステップで練習できる教材も用意しています。
興味があれば書籍一覧もご覧ください。
イーエスファイン IT人材育成部の書籍
Discussion