***HPクリエイターのためのCGI講座 第10回***
3.2 関係演算子

関係演算子を使うと、2つのオペランド(数値、文字列、式)を比較できます。
比較結果は、真のとき1、偽のときNULL(空きの文字列)が返ります。
ただし、比較演算子(<=>、cmp)の場合は
  左のオペランドが右のオペランドより大きい場合=1
  左のオペランドが右のオペランドより小さい場合=−1
  左のオペランドと右のオペランドが等しい場合=0
を返します。
数値と文字列では比較演算子が異なります。

数値用関係演算子 文字列用関係演算子
演算子 意味 演算子 意味
> より大きい gt より大きい
>= 以上 ge 以上
< より小さい lt より小さい
<= 以下 le 以下
== 等しい eq 等しい
!= 等しくない ne 等しくない
<=> 比較(-1,0,1の結果を返す) cmp 比較(-1,0,1の結果を返す)

=例=
5>4 の時 1 を返す
5<4 の時 NULL を返す
5<=>4 のとき 1 を返す
4<=>5 のとき -1 を返す
5<=>5 のとき 0 を返す

"abc" gt "ABC"の時 1 を返す
"abc" lt "ABC"の時 NULL を返す
"abc" cmp "ABC"の時 1 を返す
"ABC" cmp "abc"の時 -1 を返す
"ABC" cmp "ABC"の時 0 を返す

<NULL文字列とは>
空きの文字列を言います。ブランク文字ではありません。
$string=""; #この文を実行すると$stringはNULL文字列になる
$string=" "; #$stringはブランク(スペース)の文字列を持ち、NULLではありません

<文字の大小>
文字には全て決められた数値が割り当てられています、この数値を文字コードと呼びます。
文字列の大小比較は、この文字コードの比較をおこなっています。
文字コードを数値に置き換えて表記すると次のようになります。
"abc" = 0x61 0x62 0x63
"ABC" = 0x41 0x42 0x43
したがって、両者を比較すると"abc"の方が大きいと判定されます。

"abc"と"abcd"では"abcd"の方が大きいと判定されます。
"a"と"ABC"では"a"の方が大きいと判定されます。

演習プログラムの虫食いのところを、色々な文字列に変えて確認してみてください。

<オペランドとは>
式を含んだデータです。
したがって、比較演算子を使うにあたって
  $a+$b<5
と言った書式も可能です。


********************************************************************************
講師:ALK alk@arkland.co.jp
運営:アークランド(株) http://www.arkland.co.jp