ウェピックスではウェブ界の情報をピックアップします!
menu
ホーム > PHPの文法 > 4 演算子 > PHP の 演算子

PHP の 演算子

Pocket

PHP には多くの演算子が用意されています。演算子はあるを操作して別の値を生成することが出来る大切な数式要素です。例えば足し算や引き算、掛け算、割り算で使用する「+(足す)」「(引く)」「*(掛ける)」「/(割る)」などは代表的な演算子です。これらを算術演算子(代数演算子)と言います。算術演算子(代数演算子)以外にも多くの種類の演算子があります。

- 1 分ノート ! -

  • PHPの演算子値(オペランドまたは式)を操作して別の値を生成する
  • :例えば 1 という値は 1 という値を持つ式のこと
  • :式とは値があるもののこと
  • 最も簡単な式リテラル値 定数 変数
  • オベランド:演算の対象となる値や変数のこと
  • リテラル:リテラルとは値そのもののこと
  • 演算子は単項演算子 二項演算子 三項演算子の3分類
  • 演算子は計算の優先順位がある


演算子とは

POINT

  • PHPの演算子値(オペランドまたは式)を操作して別の値を生成する
  • :例えば 1 という値は 1 という値を持つ式のこと
  • :式とは値があるもののこと。最も簡単な式リテラル値 定数 変数
  • オベランド:演算の対象となる値や変数のこと
  • リテラル:リテラルとは値そのもののこと。プログラム内でそのままの形で現れます。例えば「2011」「'hello'」など。

 演算子とは、1つ以上の「」(オペランドまたは)を受け取り、操作(足したり、引いたり)を行い、別の値を生み出すもののことです。

例えば、演算子を使用した式は以下のようなものです。

1 という値と 2 という値を「+(加算演算子)」で加算して 3 という値を生み出します。生成した 3 という値を「=(代入演算子)」で 変数 $i に代入しています。

結果は

3

となります。


演算子の分類

POINT

  • 演算子は単項演算子 二項演算子 三項演算子の3分類

演算子は、受け取る値(オペランド)の数によって分類することができます。

単項演算子

単項演算子は、1つの値(オペランド)だけを受け取るもので、「! (論理否定演算子)」 や 「++ (加算子)」 などです。

結果は

2

となります。

二項演算子

二項演算子は、2つの値(オペランド)を受け取ります。代数演算子 である「+ (加算)」や 「- (減算)」 などです。 PHPの殆どの演算子はこの二項演算子です。

結果は

3

となります。

三項演算子

三項演算子は、3つの値(オペランド)を受け取るります。三項演算子は「 ? : 」のみです。三項演算子はその働きから条件演算子というほうが適切です。

結果は

TRUE

となります。


演算子の種類

算術演算子(代数演算子)

 算術演算子(代数演算子)は一般的な計算「+(足す)」「-(引く)」「*(掛ける)」「/(割る)」「%(余り)」を行うものです。計算の優先順位や結合時の評価は以下の表を確認して下さい。

代入演算子

 代入演算子は変数に値を代入したり、変数の値を更新する演算子です。

代表的な代入演算子は「=(イコール)」です。これは、左辺オペランドに右辺オベランドの式の値を代入(式の値を得て代入)するものです。右辺オペランドの式の値を得てから代入します。

ビット演算子

ビットとは、コンピュータが処理する最小の単位です。ビット演算子は、オペランド(演算の対象となる値や変数のこと)の整数値をビット(2進数)に表現し、特定のビットを評価し演算を行います。つまり、整数値をビット値で演算します。

比較演算子

比較演算子は左辺オペランド右辺オペランドを比較します(オペランド:演算の対象となる値や変数のこと)。比較の結果が真なら論理値の「true(真)」を返し、そうでない場合は論理値の「false(偽)」を返します(論理型はこちらを参照下さい)。オペランドには数値文字列の両方が使用できます。また他のさまざまな型を比較できます。

加算子(インクリメント演算子)・減算子(デクリメント演算子)

「++(加算子)」「- -(減算子)」はある値を1つずつ増やしたり減らしたりする演算子です。この演算子は変数にのみ適用されます。数値のみでなく文字列が格納された変数に対しても適用することができます。

「++(加算子)」/「- -(減算子)」は bool 型の値には何も変更を加えません。 同じく NULL に減算子を適用しても何も起こりませんが、NULL に加算子を 適用すると 1 となります。

文字列演算子

文字列演算子は結合「.(ドット)」結合代入「.=(ドットイコール)」の2種類あります。

結合演算子は「.(ドット)」で、左辺オペランドと右辺オペランドを結合したものを返します。

論理演算子

論理演算子は論理値を評価し、結果を論理値で返します。オペランドは論理値とされます。(オペランドとは演算子の対象となる値のこと)。論理値は「」「」を表す値であり、キーワード「TREU」と「FALSE」で表されます。論理値の詳細についてはこちらを参照下さい。

論理演算子はアルファベット版記号版2種類あります。アルファベット版と記号版では評価の優先順位が異なり、アルファベット版の優先順位が上です。

キャスト演算子

 型のジャグリングとは規則に応じて自動的に行われるデータ型の変換のことです。

PHPは必要に応じてデータ型を自動的に変換します。データ型の変換をキャストといいます。

殆どの演算子はオペランド(値あるいは式)に対して前提条件があります。例えば、算術演算子のニ項演算子の場合、2つのオペランドが同じデータ型であることが前提条件になっています。そのためPHPでは前提条件に則るためにデータ型を自動的に変換します。
PHPが自動的に行ってくれるので楽なのですが、どのように変換されるか理解していないと、場合によっては意図しない結果が発生してしまうことがあります。

このように暗黙的に行われるキャストのことを型のジャグリングと言います。型のジャグリングには規則があります。

エラー制御演算子

エラー制御演算子「@」を式の前につけた場合、その式により生成されたエラーメッセージは無視されます。エラー演算子は全ての式で動作します。

実行演算子

実行演算子は、 (バッククォート)です。バッククォート演算子とも言います。

条件演算子(三項演算子)

条件演算子はオペランド(演算子の対象となる値)を3つ使用するPHP唯一の三項演算子です。条件演算子「? :」は「?」の左辺の式を評価し結果が「真(TRUE)」の場合は「:」の左辺の式の値を返し、「偽(FALSE)」の場合は「:」の右辺の式の値を返します。式に対して式を評価します。PHPの式についてはこちら

配列演算子

配列演算子は配列型のデータを統合したり比較したりする演算子です。

配列演算子としての「+」は、右辺の配列を左辺の配列に追加したものを返します。両方の配列に存在するキーについては左辺の配列の要素が優先され、右辺の配列にあった同じキーの要素は無視されます。 その他の配列演算子については配列演算子の種類を参照下さい。

算術演算子(代数演算子) 算術演算子(代数演算子)は「足す」「引く」「掛ける」「割る」「余り」
代入演算子 代入演算子は変数に値を代入したり、変数の値を更新する
ビット演算子 ビット演算子は、整数値をビット値で演算
ビットはコンピュータが処理する最小単位
比較演算子 比較演算子は左右のオペランドを比較する
結果と「true(真)」「false(偽)」で返す
加算子(インクリメント演算子)・減算子(デクリメント演算子) 加算子/減算子は値を1ずつ増減
文字列演算子 文字列演算子は結合と結合代入の2種類
論理演算子 論理演算子は論理値を評価し論理値を返す
キャスト演算子 キャスト演算子は右辺オペランドのデータ型を指定した型にする
エラー制御演算子 エラー制御演算子 @ を式の前に付けると式のエラーは無視される
実行演算子 PHPは実行演算子「“(バッククォート)」をサポート
条件演算子(三項演算子) (条件式) ? 真の場合の式 : 偽の場合の式;
配列演算子 配列演算子は配列を統合したり比較したりする


PHPの演算子と優先順位

POINT

  • 演算子は計算の優先順位がある

PHPの演算子 早見表
優先
順位
演算子 名前 種類 結合時の
評価
働き
19 new new new 結合なし 新規オブジェクト作成
18 [ array() array() left 配列の添字
17 ++ 加算子 加算子 結合なし 増加
  減算子 減算子 結合なし 減少
  ~ ビット否定 型 ビット演算子 right ビット反転
  (int)
(float)
(string)
(array)
(object)
(bool)
キャスト 型 キャスト演算子 right 整数型へ変換
浮動小数点型へ変換
文字列型へ変換
配列型へ変換
オブジェクト型へ変換
論理型へ変換
  @ エラー制御 型 エラー制御演算子 right エラー制御
  instanceof 結合なし  
  ! 論理否定(NOT) 論理演算子 right 論理否定(NOT)
16 *
/
%
乗算
除算
剰余
代数演算子 left 乗算
除算
剰余
15 +

.
加算
減算
文字列結合
代数演算子
代数演算子
文字列演算子
left 加算
減算
文字列結合
14 <<
>>
左シフト
右シフト
ビット演算子 left ビット単位左シフト
ビット単位右シフト
13 <
<=
>
>=
<>
より小さい
より小さいか等しい
より大きい
より大きいか等しい
等しくない
比較演算子 結合なし より小さい
より小さいか等しい
より大きい
より大きいか等しい
等しくない
12 ==
!=
===
!==
等しい
等しくない
同じ
同じでない
比較演算子 結合なし 値が等しい
値が等しくない
値と型が同じ
値と型が同じでない
11 & ビット積(AND) ビット演算子 left ビット積(AND)
10 ^ ビット排他的論理和(XOR) ビット演算子 left ビット排他的論理和(XOR)
9 | ビット和(OR) ビット演算子 left ビット和(OR)
8 && 論理積(AND) 論理演算子 left 論理積(AND)
7 || 論理和(OR) 論理演算子 left 論理和(OR)
6 ? : 三項演算子
(条件演算子)
三項演算子
(条件演算子)
left 条件演算子
5 =
+=
-=
*=
/=
%=
.=
&=
|=
^=
<<=
>>=
=>
代入
加算代入
減算代入
乗算代入
除算代入
乗算代入
連結代入
ビットAND代入
ビットOR代入
ビットXOR代入
左シフト代入
右シフト代入
配列値代入
代入演算子 right 操作結果の代入
4 and 論理積(AND) 論理演算子 left 論理積(AND)
3 xor 排他的論理和(XOR) 論理演算子 left 排他的論理和(XOR)
2 or 論理和(OR) 論理演算子 left 論理和(OR)
1 , さまざまな利用法 さまざまな利用法 left リストの区切り


タグ(=記事関連ワード)

タグ: ,

日付

投稿日:2017年3月21日
最終更新日:2017年04月12日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/phpref-operators/trackback/