PHPプログラミングで人を幸せにしたい

PHPプログラミングで人を幸せにしたい


PHPプログラミングを勉強中のりょうま堂です。プログラミングは価値あるものを生み出せる数少ない技術。PHPは簡単なので入門に最適ですよ!

文字連結演算子と比較演算子・論理演算子

PHPプログラミングの基礎

文字の連結演算子を使って文字列と展開した変数をつなげよう

本日のコラムは演算子の続きで、連結演算子について解説します。
といっても解説するほどのことはなく、文字列と文字列を「.」でつなぐだけです。
それで終わってはあまりにあっけないので、もう少し踏み込んでみたいと思います。

文字列内で変数を展開する{}と何が違うの?

まずは連結演算子を使った連結のしかたの例です。

$str1 = "おみくじの結果は・・・";
$str2 = "大吉!";
echo $str1.$str2;
echo "今日のあなたの運勢は・・・".$str2;
echo "あなたはいつでも{$str2}";
おみくじの結果は・・・大吉!
今日のあなたの運勢は・・・大吉!
あなたはいつでも大吉!

1の例では変数どうしを.でつないで連結出力しています。
2の例では、直接文字列と変数を連結しています。
3の例では、文字列の中で変数を展開しています。
 
2と3を見る限りでは、連結による変数の展開でも{}による変数の展開でも同じです。
違いがでるのは次のような場合です。

echo '来年の初詣もきっと{$str2}';
echo '来年の初詣もきっと'.$str2;
来年の初詣もきっと{$str2}
来年の初詣もきっと大吉!

{}による文字列内での変数の展開は、""で囲まれた文字列内でしか有効ではありません。
PHPでは'(シングルクオート)内では変数の展開自体がおこなわれないのです。
ということで、連結演算子の方がよく使うんじゃないかなと思います。

目次にもどる

比較演算子を使って条件式をつくろう

比較演算子と論理演算子はプログラムの醍醐味です。
2つのものの大小を示したり、一致する・しないということを示すための演算子です。
比較演算子と論理演算子を合わせて以下の一覧表にまとめておきます。

$a == $b
演算子書き方意味
==$aと$bが等しい
===$a === $b$aと$bが型も値も等しい
!=(または<>)$a != $b($a <> $b)$aと$bが等しくない
>$a > $b$aが$bより大きい
<$a < $b$aが$bより小さい
>=$a >= $b$aが$bより大きいか等しい
<=$a <= $b$aが$bより小さいか等しい
&&(またはand)(条件1) && (条件2)条件1と条件2のどちらも真
||(またはor)(条件1) || (条件2)条件1か条件2のどちらかが真、もしくはどちらも真
xor(条件1) xor (条件2)条件1か条件2の片方だけが真

注意点としては文字列の数字どうしの比較の場合、自動的に数値としての比較になってしまうという点です。
具体的には、3つの数字(1,2,12)を比較する場合。
数値として比較すれば(1→2→12)の順に大きくなりますよね。
ですが場合によってはファイルの並び替えなどで(1→12→2)の順にしたいときもあるのです。
(限られたケースですので、これは関数のコラムでお伝えします。)

目次にもどる

条件式if文を使おう

上記の比較演算子や論理演算子をつかって、条件分岐するためのif文を書いてみましょう。
if文の書き方は次のようになります。

if(条件1){
  条件1が真のときの動作
}

実際に練習してみましょう。

$num = 5;
if($num > 7){
echo '$num'."は7より大きい";
}

最初はなにも表示されませんが、$numに代入する値を変えてやると、{}の中に書いたスクリプトが動作します。
$num > 7 の部分を条件式といい、これが成り立つことを条件1が真(もしくは条件1がtrue)と言います。
逆に条件1が成り立たない場合は条件1が偽(もしくは条件1がfalse)と言います。
 
上のような式では、条件1が真のときしか{}内の動作はしませんから、ある条件のとき限定の動きを作り出せますね。
 
では最後にもうひとつ、条件1が成り立つときと成り立たないときで、動作を変える式を作ってみましょう。
これは条件分岐といい、if~else文で表現します。

$num = 5;
$max = 10;
$min = 2;
if(($num > $min) && ($num < $max)){
echo '$numは'.$min."より大きくて".$max."より小さい";
} else {
echo '$numは'.$min."より小さいか".$max."より大きい数字だ";
}

色々ここまでの解説を織り交ぜてみました。
if~else文は次のような意味になります。

if(条件1){
  条件1が真のときの動作
} else {
  条件1が偽のときの動作
}

ひとつの式ですが、見やすくするために普通は上のような書き方をします。
条件をいろいろ変えて練習してみてください。

目次にもどる

コメントフォーム

自分の勉強にもなりますので、コメントいただけるとうれしいです。

お名前・ニックネーム

 

タイトル

 

コメント ※HTMLタグは使えません

コメント

  • コメントはまだありません。