***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