新しいブログに移動しました。
9ensanのLifeHack
こちらの記事も必要に応じて新しいブログに移動させる予定です。
今後ともよろしくお願い致します。

HOME > PHP > 

PHP入門 第12回 演算子

PHP入門 第12回 演算子

  • 2009.02.09 (月) 17:57
  • PHP

PHPの演算子には、3種類あります。

  1. 単項演算子
  2. 二項演算子
  3. 三項演算子

の3つです。

単項演算子は、ひとつの値に対してのみ作用します。

二項演算子は、2つの値に対して作用します。PHPの演算子のほとんどがこの二項演算子になります。

三項演算子は、3つの値に対して作用します。実際の使用例とともに使い方を勉強しましょう。

代数演算子
意味 結果
-$a 負にする $aの符号が逆
$a + $b 加算 $a および $b の合計
$a – $b 減算 $a と $b の差
$a * $b 乗算 $a および $b の積
$a / $b 除算 $a および $b の商
$a % $b 剰余 $a を $b で割った余り
代入演算子

代入演算子の基本となるものは "=" です。

左オペランドに右オペランドの式の値を設定します。

 

1
2
3
<?php
$a = ($b = 4) + 5; // $a は 9 に等しく、$b は 4 にセットされます。
?>
ビット演算子

ビット演算子は、整数における特定のビットをオンまたはオフにすることを 可能にします。

もし左辺値と右辺値共に文字列であった場合にはビット演算子は 文字の ASCIIコードに対して作用します。

意味 結果
$a & $b ビット積 $a および $b の両方にセットされているビット
$a | $b ビット和 $a または $b のどちらかにセットされているビット
$a ^ $b 排他的論理和 $a または $b にセットされており、両方にセットされていないビット
~ $a 否定 $a にセットされているビットはセットせず、そうでないものは逆にする
$a << $b 左シフト $a のビットを左に $b ビットシフトする(各シフトは "2をかける" ことを意味します)
$a >> $b 右シフト $a のビットを右に $b ビットシフトします (各シフトは "2で割る" ことを意味します)

ビット計算を詳しく知りたい方はこちらをご覧ください。

 比較演算子
意味 結果
$a == $b 等しい $a が $b に等しい時に TRUE。
$a === $b 等しい $a が $b に等しく同じ型でである場合に TRUE
$a != $b 等しくない $a が $b に等しくない場合に TRUE。
$a <> $b 等しくない $a が $b に等しくない場合に TRUE。
$a !== $b 等しくない $a が $b と等しくないか、同じ型でない場合に TRUE
$a < $b より少ない $a が $b より少ない時に TRUE。
$a > $b より多い $a が $b より多い時に TRUE。
$a <= $b より少ないか等しい $a が $b より少ないか等しい時に TRUE。
$a >= $b より多いか等しい $a が $b より多いか等しい時に TRUE。
エラー制御演算子

PHP はエラー制御演算子(@)をサポートしています。

PHP の式の前に付けた場合、 その式により生成されたエラーメッセージは無視されます。

1
2
3
4
5
6
7
8
9
<?php
/* 意図的なエラー */
$my_file = @file ('non_existent_file') or
    die ("Failed opening file: error was '$php_errormsg'");
 
// この演算子は関数だけでなく、全ての式で動作します。
$value = @$cache[$key];
// インデックス $key が存在しない場合でも、警告を発生しません。
?>
 実行演算子

PHP は 1 種類の実行演算子、バッククォート (“) をサポートします。

シングルクォートではないことに注意してください

PHP は、バッククォートの 中身をシェルコマンドとして実行しようとします。

出力が返されます (すなわち、出力を単にダンプするのではなく、変数に代入することが できます) 。

バッククォート演算子の使用は shell_exec() と等価です。

 加算子/減算子
意味 効果
++$a 前置加算子 $a に 1 を加え、$a を返します。
$a++ 後置加算子 $a を返し、$a に1を加えます。
–$a 前置減算子 $a から 1 を引き、$a を返します。
$a– 後置減算子 $aを返し、$a から 1 を引きます。

 例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
echo "<h3>後置加算</h3>";
$a = 5;
echo "5 となります: " . $a++ . "<br>\n";
echo "6 となります: " . $a . "<br>\n";
 
echo "<h3>前置加算</h3>";
$a = 5;
echo "6 となります: " . ++$a . "<br>\n";
echo "6 となります: " . $a . "<br>\n";
 
echo "<h3>後置減算</h3>";
$a = 5;
echo "5 となります: " . $a-- . "<br>\n";
echo "4 となります: " . $a . "<br>\n";
 
echo "<h3>前置減算</h3>";
$a = 5;
echo "4 となります: " . --$a . "<br>\n";
echo "4 となります: " . $a . "<br>\n";
?>
論理演算子
意味 結果
$a and $b 論理積 $a および $b が共に TRUE の場合に TRUE
$a or $b 論理和 $a または $b のどちらかが TRUE の場合に TRUE
$a xor $b 排他的論理和 $a または $b のどちらかが TRUE でかつ両方とも TRUE でない場合に TRUE
! $a 否定 $a が TRUE でない場合 TRUE
$a && $b 論理積 $a および $b が共に TRUE の場合に TRUE
$a || $b 論理和 $a または $b のどちらかが TRUE の場合に TRUE
文字列演算子

文字列の演算子は 2 種類あります。

1つは結合演算子(‘.’)で、右引数と 左引数を結合したものを返します。

2 番目は、結合代入演算子(‘.=’)で、 この演算子は右側の引数に左側の引数を追加します。

配列演算子
意味 結果
$a + $b 結合 $a および $b を結合する。
$a == $b 同等 $a および $b のキー/値のペアが等しい場合に TRUE。
$a === $b 同一 $a および $b のキー/値のペアが等しく、その並び順が等しく、 かつデータ型も等しい場合に TRUE。
$a != $b 等しくない $a が $b と等しくない場合に TRUE。
$a <> $b 等しくない $a が $b と等しくない場合に TRUE。
$a !== $b 同一でない $a が $b と同一でない場合に TRUE。
型演算子

instanceof を使用して、 ある PHP 変数が特定の クラス  のオブジェクトのインスタンスであるかどうかを調べます。

演算子の優先順位

演算子の優先順位は、二つの式が"緊密に"結合している度合いを指定します。

1 + 5 * 3 の答えは 16 になり、18 とはなりません。

これは乗算演算子("*")は、加算演算子("+")より高い優先順位を有するか らです。

必要に応じて強制的に優先順位を設定するために括弧を使用する ことが可能です。

例えば、18と評価するためには、 (1 + 5) * 3 とします。 演算子の優先順位が等しい場合は、左から右へ順に評価されます。

結合時の評価 演算子
結合しない clone new
left [
結合しない ++ –
結合しない ~ – (int) (float) (string) (array) (object) (bool) @
結合しない instanceof
right !
left * / %
left + – .
left << >>
結合しない < <= > >= <>
結合しない == != === !==
left &
left ^
left |
left &&
left ||
left ? :
right = += -= *= /= .= %= &= |= ^= <<= >>=
left and
left xor
left or
left ,
 三項演算子

特殊な演算子で

1
1 ? 式2 : 式3;

の形で使用されます。

使用例から見ていきましょう。

例えばある変数が「5以上の場合は、10を4以下の場合は0を変数に設定する」というような条件文があったとします。

普通if文を使用して

1
2
3
4
5
if ($a >= 5) {
    $a = 10;
} else {
    $a = 0;
}

のような記述します。

しかし、三項演算子を使用すると以下のように書き換えることができます。

1
$a = $a >= 5 ? 10 : 0;

つまり

式1が条件で、その条件がTRUEの場合は、式2の値が設定され、FALSEの場合は式3の値が設定されるのが三項演算子なのです。

コメント:0件

コメント投稿フォーム
コメントを入力して下さい。
ユーザー名(必須)
メールアドレス(必須)(非公開)
ホームページ
コメント

トラックバック:1件

  1. [...] 第12回 演算子 [...]

この記事のトラックバックURL
http://blog.veryposi.info/programing/php/php-guide-12/trackback/
お薦めのレンタルサーバー
広告
お薦めの書籍
HOME > PHP > 

PHP入門 第12回 演算子