ORJavaScriptが有効ではありません。(オペレーター)とは「演算子(オペレーター)」は、『演算の対象となる「被演算子(オペランド)」(関数の引数に当たるもの)を評価(計算する事)し、その結果を返す』という処理を行うものです。"HODENASU";」という一文の場合、演算子は真ん中の「=(イコール)」で、演算の対象となる被演算子は左辺の「変数$hode」と右辺の「"HODENASU"」という文字列です。今回の「代入演算子」が行う処理は、「左辺(第1オペランド)の“値を格納できるもの(変数)”に右辺(第2オペランド)の値を代入し、代入した値を返す」というものです。これを踏まえて以下のサンプルと結果をご覧下さい。"HODENASU";」の部分が処理され、代入演算子は結果として代入した値を返します。"HODENASU";」が処理されます。代入演算子は、1箇所に複数あった場合、右側から処理します。逆だと、値に値を代入する事になってしまうからです。各演算子はそれぞれ演算対象、要するにオペランド(被演算子)の数が決まっていて、その数によって、オペランドが1つの場合は「単項演算子」、2つの場合は「2項演算子」、3つの場合は「3項演算子」と呼びます。登場した代入演算子はオペランドが2つなので2項演算子です。代数演算子(算術演算子)「代数演算子(算術演算子)」は、「足し算」や「引き算」を行う演算子です。「文字列の連結」を行う演算子です。「左辺の“値を格納できるもの(変数)”に右辺の値を代入し、代入した値を返す」という処理をする演算子です。「加算子/減算子」は、被演算子の値を「1」だけ増減(インクリメント/デクリメント)させる演算子です。「$a」の値を返し、「$a」から「1」を引くちょっと解かり辛いので以下のサンプルと結果をご覧下さい。「$a++」と「$a--」の「後置型」はというと、増減処理の前に値を返しています。返してから、増減処理しています。配列「$arr1」に配列「$arr1」のキーが重複しない要素を追加。その結果できた配列を返す代数演算子の「+(プラス)」(加算演算子)は、被演算子が配列の場合、配列演算子として機能します。以下のサンプルと結果をご覧下さい。mou)Array(...これだと見辛いので、HTMLのソースを見てみます(もしくは「<pre></pre>」タグで括る)。すると以下の様にきれいに改行・インデントされているので見やすくなります。chu)</p></body></html>まず、「print_r」は、「配列の中身を展開して出力する」という処理を行う関数です。「左辺の値を右辺の値と比較してどうかを、その結果に応じた真偽値を返す」という処理を行う演算子です。以下のサンプルと結果をご覧下さい。0今回のサンプルでは、「変数$a」と「変数$b」は、値は同じですが型が異なるのでこの様な結果になりました。ついでに、文字列の「"HODENASU"」と数値の「0」を「==」で比較した所、何と、どういう訳か、“等価である”と評価されました。型の比較表」のページに明記されたPHPの仕様という悲しい事実なので受け入れるしかありません。"OK!";}」を実行すると、存在しない場合には「OK!」と出力される事はありませんが、配列の中に数値の「0」を添え字にした要素が存在すると、そこで「OK!」を出力する事になります。この奇想天外な仕様のお陰でハマリました。"OK!";}」の様に「===」で比較するようにしなくてはなりません。「一番左側から順に、第一オペランドが真なら第二オペランドの、偽なら第三オペランドの値を返す」という処理を行う、唯一の3項演算子です。「$a」が「真」なら「$b」を、「偽」なら「$c」を返す以下のサンプルと結果をご覧下さい。"NASU"」の評価は偽で、条件演算子にとっての第一オペランドの値は偽である為、第三オペランドの「"FALSE"」が出力されました。「真偽値の比較」を行う演算子です。いずれかのオペランドが「真」なら「true」を返す「論理積」と「論理和」の演算子が2通りあるのは、演算の際の優先順位(後で解説)が異なるためです。「&&」、「||」は、「and」、「or」よりも優先順位が高いです。代入演算子と比較演算子の優先順位がこの2つの優先順位の間に来ます。「&&」と「||」、「=」や「==」、「and」と「or」の順に優先順位が高いという事です。優先順位が高いほど先に演算されます。これ(優先順位)については後で解説。論理演算子の特性として、「論理積」の場合は、「左辺が真でかつ右辺が真なら真を返す」というものなので、もし左辺が偽ならその時点で偽であるため、右辺を評価(計算)する必要が無くなり、評価しないで結果を返します。「論理積」の場合は、「左辺もしくは右辺が真なら真を返す」というものなので、もし左辺が真ならその時点で真であるため、右辺を評価する必要がなくなり、評価しないで結果を返します。これを踏まえた上で以下のサンプルと結果をご覧下さい。今回のサンプルは、『「変数$a」に「"dog"」を、「変数$b」に「""」をセットし、「if文」を通過した後、それぞれ出力する』という処理を4パターンの条件式で行っています。"cat"」が評価されます(「変数$b」に「"cat"」が代入される)。"cat"」は評価されません。3つ目の「if文」の条件式「!$b」では、まず「$b」の真偽が「偽」と評価され(空文字列なので)、その「否定」の「真」と判定されます。"cat"」は評価されます。""」が両方とも「真」であるため、「偽」と判定されます。"cat"」は評価されません。「エラー制御演算子」「@(アットマーク)」は、「何らかの問題で生成されたエラーメッセージを無視する(出力を行わない)」という働きを持った演算子です。生成されたエラーメッセージを出力しないエラー制御演算子は、「式(値を持つもので、「変数」や「定数」、そして「関数」の事)」でのみ動作します。文法ミスによるエラーメッセージは制御出来ません。以下のサンプルと結果をご覧下さい。@func();?>(文法ミスによるエラーメッセージ)今回のサンプルでは、エラー制御演算子によって、本来出力されるはずの「未定義の関数を呼び出しています」旨のエラーメッセージが出力されていません。文法ミスによるエラーメッセージは出力されました(文法ミスは演算子が使用される以前の問題である為)。「ビット演算子」は、「整数をビット単位で演算する」という働きを持った演算子です。「$a」のビットを右に「$b」ビット分シフト(移動)するシフト毎に「2」で割った事になる以下のサンプルと結果をご覧下さい。?>33532-362804今回のサンプルでは、まず「変数$a」と「変数$b」にそれぞれ「35」と「3」をセットし、ビットごと演算を行って出力しています。ビットごと演算するには、まず整数をビット(つまり2進数表記)に変換します。すると、「35」と「3」はそれぞれ「100011」と「11」に表されます。この2つを元に演算していきます。$b」は、「100011」と「000011」の両方にセットされているビット、つまり「11」を、10進表記に戻すと「3」を返します。$b」は、「100011」と「000011」のどちらかにセットされているビット、つまり「100011」を、10進表記に戻すと「35」を返します。$b」は、「100011」と「000011」の片方のみにセットされているビット、つまり「100000」を、10進表記に戻すと「32」を返します。1つ目の「~$a」は、「100011」ビットを反転したビット、つまり「011100」を...(ここがどうなってるのか解からない)...、10進表記に戻すと「-36」を返します(汗)。$b」は、「100011」を左に「3」ビット分シフトさせたビット、つまり「100011000」を、10進表記に戻すと「280」を返します。左にビットシフトするということは、ようするに「桁上がり」するという事で、2進数の基数は「2」なので、10進数が10倍するごとに桁上がりする様に、2進数は2倍するごとに桁上がりします。よって、左に1シフトする事は2倍するのと同じ事なのです。ラストは「実行演算子」「`(後方引用符、バッククォート)」です。この演算子は、「パラメータをシェルコマンドとして実行しようとし、その出力を返す」という働きを持った演算子です。シェルコマンドの実行、その出力を返すはっきり言って、理解しておりません(オイ)。この演算子を使うには条件が整っている必要があったり、また「シェル」というものを理解している必要があります。このページの範囲を超えるので、実行演算子についての解説はこれでおしまいにします。この様に、1つの式に複数結合した演算子がある場合、演算子の種類によって、どちら側から評価していくのかが決まっています。それぞれの演算子には優先順位というものがあって、違った種類の演算子が混在する場合は、優先順位の高いものから先に演算されます。演算子の結合時の評価の向き(どちら側から評価するのか)と優先順位は次の通り(優先順位が高い順)です。$c」の様な書き方は許されていない事を意味します。$c」という形で書きます。$c」を先に評価する事を意味します。$b」を先に評価する事を意味します。優先順位について異なる種類の演算子が混在している場合、優先順位が高い方の演算子から評価を行います。$c」の部分が先に評価されます。優先順位を強制的に最優先にさせたい場合は、優先させたい個所を「()(丸括弧)」で括ります。$b」の部分が評価されます。おさらいと予告これにて、演算子の解説は終わりです。演算子とは演算子(オペレーター)は、与えられた被演算子(オペランド)を処理し、結果の値を返す。11種類があり、さらにこれらの中に幾つもの演算子がある。2項演算子」、「3項演算子」と呼ぶ。演算子には評価をする順番(左右どちら側から評価するか)と、種類ごとに優先順位があり、優先順位が高い方の演算子から評価される。強制的に評価を優先させたい場合は、その個所を「()(丸括弧)」で括る。クラスとオブジェクト次回は、「オブジェクト型」を理解するための、「クラス」と「オブジェクト」について解説します。オブジェクトは配列同様、複合型の値です。配列が複数の値を保持するのに対して、オブジェクトは『「メンバ変数(プロパティ)」という値と「メンバ関数(メソッド)」という関数を保持する』という構造をしています。このオブジェクトの構造を定義するものがクラスです。