演算子を使うことで、数値の計算や比較を行なうことが出来ます。
数値計算(四則計算)を行なう場合は、算術演算子を使用します。
$aa = 7 + 3;
$aa = 7 - 3;
$aa = 7 * 3;
$aa = 7 / 3;
$aa = 7 % 3;
$aa = 7 ** 3;
$aa++;
++$aa;
$aa--;
--$aa;
$aa += 3;
$aa -= 3;
$aa *= 3;
$aa /= 3;
$aa %= 3;
$aa **= 3;
|
# 足し算
# 引き算
# 掛け算
# 割り算
# 7を3で割った余り
# 7の3乗(= 343)
# $aa の値に1加算する(加算前の値を返す)
# $aa の値に1加算する(加算後の値を返す)
# $aa の値を1減算する(減算前の値を返す)
# $aa の値を1減算する(減算後の値を返す)
# $aa = $aa + 3; と同義
# $aa = $aa - 3; と同義
# $aa = $aa * 3; と同義
# $aa = $aa / 3; と同義
# $aa = $aa % 3; と同義
# $aa = $aa ** 3; と同義
|
if ($aa == $bb)
if ($aa != $bb)
if ($aa < $bb)
if ($aa > $bb)
if ($aa <= $bb)
if ($aa >= $bb)
if ($aa <=> $bb)
|
# $aa と $bb が等しい場合
# $aa と $bb が異なる場合
# $aa が $bb より小さい場合
# $aa が $bb より大きい場合
# $aa が $bb 以下の場合
# $aa が $bb 以上の場合
# $aa が $bb より小さい場合は -1、等しい場合は 0、$aa が $bb より大きい場合は 1 を返す
|
条件演算子を使うと、条件文を1行で表現することができます。
2者選択の簡単な条件分岐なら、条件演算子で可能です。
# $x が9より大きい場合は 「OK」、それ以外は「NG」
$aa = ($x > 9) ? "OK" : "NG";
文字列演算子を使うと、文字同士を結合したり、比較を行なうことが出来ます。
# 文字の連結
$aa = "AAA" . "BBB"; ← "AAABBB" が返される
# 繰り返し文字
$aa = "ABC" x 3; ← "ABCABCABC" が返される
if ($aa eq $bb)
if ($aa ne $bb)
if ($aa lt $bb)
if ($aa gt $bb)
if ($aa le $bb)
if ($aa ge $bb)
if ($aa cmp $bb)
if ($aa =~ /BBC/)
if ($aa !~ /NHK/)
|
# $aa と $bb が等しい場合
# $aa と $bb が異なる場合
# $aa が $bb より小さい場合
# $aa が $bb より大きい場合
# $aa が $bb 以下の場合
# $aa が $bb 以上の場合
# $aa が $bb より小さい場合は -1、等しい場合は 0、$aa が $bb より大きい場合は 1 を返す
# $aa が 正規表現 BBC とマッチした場合
# $aa が 正規表現 NHK とマッチしない場合
|
文字列の比較の場合、大小の比較は文字コードの順で比較を行ないます。
ここでは、変数を使った文字の比較を行なっていますが、直接文字を指定する場合には、
「’(シングルクォーテーション)」 か 「”(ダブルクォーテーション)」 などで囲む必要があります。
論理演算子を使うと、複数の条件を設定してより複雑な条件分岐が可能となります。
if (($aa == 5) && ($bb == 9))
if (($aa == 5) || ($bb == 9))
if (!($aa == 5))
if (($aa == 5) and ($bb == 9))
if (($aa == 5) or ($bb == 9))
if (not ($aa == 5))
|
# $aa が 5、かつ $bb が 9 ならば
# $aa が 5、もしくは $bb が 9 ならば
# $aa が 5 でなければ
# $aa が 5、かつ $bb が 9 ならば
# $aa が 5、もしくは $bb が 9 ならば
# $aa が 5 でなければ
|
「&&」 と 「and」、「||」 と 「or」 、「!」 と 「not」 は同じ意味です。
「and、or、not」 より 「&&、||、!」 の方が高い優先順位を持ちます。
ファイルテスト演算子では、ファイルの性質をチェックします。
if (-r $file)
if (-w $file)
if (-x $file)
if (-o $file)
if (-R $file)
if (-W $file)
if (-X $file)
if (-O $file)
if (-e $file)
if (-z $file)
if (-s $file)
if (-f $file)
if (-d $file)
if (-l $file)
if (-p $file)
if (-S $file)
if (-b $file)
if (-c $file)
if (-t $file)
if (-u $file)
if (-g $file)
if (-k $file)
if (-T $file)
if (-B $file)
if (-M $file)
if (-A $file)
if (-C $file)
|
# 読み込み可能である場合
# 書込み可能である場合
# 実行可能である場合
# ファイルの権限が自分のものである場合
# 実 uid/gid で読み込み可能である場合(UNIX)
# 実 uid/gid で書込み可能である場合(UNIX)
# 実 uid/gid で実行可能である場合(UNIX)
# 実 uid が自分のものである場合(UNIX)
# ファイルが存在する場合
# ファイルサイズが 0 の場合
# ファイルサイズが 0 でない場合(ファイルサイズを返す)
# 通常のファイルの場合
# ディレクトリの場合
# シンボリックリンクの場合
# 名前つきパイプの場合
# ソケットの場合
# ブロック型特殊ファイルの場合
# キャラクタ型特殊ファイルの場合
# 端末に開いているファイルハンドルの場合
# setuid ビットがセットされている場合
# setgid ビットがセットされている場合
# sticky ビットがセットされている場合
# テキストファイルの場合
# バイナリファイルの場合
# ファイルの更新時刻がプログラム起動時より古い場合
# ファイルの参照時刻がプログラム起動時より古い場合
# ファイルの作成時刻がプログラム起動時より古い場合
|