.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 5
.
<< Prev
« INDEX »
PHP 文法編
Next >>
作成日:2006/05/10

1H 演算子

1H.1 基本的な演算子と優先順位

優先順位の高いものから順に演算子を並べてあります。
結合 項の数 演算子 説明
しない 1
new
オブジェクトの生成
1
[
配列のインデックス
しない 1
++
後置および前置のインクリメント演算子(C風)
--
後置および前置のデクリメント演算子 (C風)
しない 1
!
論理演算子  NOT(C風)
~
ビット演算子 NOT(C風)
-
算術演算子 符号の反転
(型)
型のキャスト
@
エラー制御演算子
2
*
算術演算子 乗算
/
算術演算子 除算
%
算術演算子 剰余
2
+
算術演算子 加算
-
算術演算子 加算
.
文字列演算子 結合
2
<<
ビット演算子 左シフト
>>
ビット演算子 右シフト
しない 2
<
比較演算子 より大きい
>
比較演算子 より小さい
<=
比較演算子 以上
>=
比較演算子 以下
しない 2
==
比較演算子 等しい
!=
比較演算子 等しくない
===
比較演算子 等しい(型の比較も含む)
!==
比較演算子 等しくない(型の比較も含む)
2
&
ビット演算子 AND(C風)
2
^
ビット演算子 XOR(C風)
2
|
ビット演算子 OR (C風)
2
&&
論理演算子 AND(C風)
2
||
論理演算子 OR (C風)
3
?:
条件演算子:
「式1?式2:式3」は式1が真なら式2を、偽なら式3を評価し値とします
2
=
代入演算子
OP=
複合代入演算子:
OPには算術・文字列・ビット演算子が利用可:- * / . % & | ^ << >>
2
and
論理演算子 AND(Basic風)
2
xor
論理演算子 XOR(Basic風)
2
or
論理演算子 OR (Basic風)
2
,
列挙演算子:
左の式を評価して値を捨てた後、右の式を評価する
結合即:
上の「結合」は結合規則の事です。 結合規則は、同じ優先順位の演算子が連続した場合、左右どちらの演算子から評価するかを決めた規則です。 左結合は左の演算子から、右結合は右の演算子から評価されます。
$a = 1 + 2 - 3;  // $a=(1+2)-3;と同値。(左結合)
$a = $b += 1;    // $a=($b+=1);と同値。(右結合)


1H.2 エラー制御演算子

 エラー制御演算子(@)を式の前に付けた場合、その式により生成されたエラーメッセージを表示しません。 @演算子は、式でのみ動作します。例えば、変数、定数、関数の前にこの演算子をつけることができます。 関数またはクラスの定義や ifやforeachなどのような文の前にこの演算子を付けることはできません。

用例:
$a = 1/0;    // 0割りが発生します
$a = @(1/0); // @を付けると警告が表示されません

include('dummy.php');  // 存在しないファイルをincludeしています
@include('dummy.php'); // @を付けると警告が表示されません

$lines = file('dummy.txt');  // 存在しないテキストファイルを読み込んでいます
$lines = @file('dummy.txt'); // @を付けると警告が表示されません


1H.3 実行演算子

 PHP はPerlと同じく、逆クォート演算子(``) をサポートしています。 逆クォートでコマンド文字列を括ると、その文字列をシェルコマンドとして実行とし、出力が返されます。 バッククォート演算子の使用は shell_exec() と等価です。

用例:
$output = `dir`; // OSがWindows系の場合です
echo "<pre>$output</pre>";


1H.4 配列演算子

 一部の演算子は配列の為にオーバーロードされています。

演算の名前演算の例演算の結果
Union
$a + $b
左側配列($a)に右側配列($b)の要素を追加します。この時、同じキーは上書きしません。
この演算は可換ではありません。($a+$b)と($b+$a)は一般に異なります。
Equality
$a == $b
配列($a)と配列($b)が全て同じ要素を持つときTRUEになります。
各要素の型は問いません。(0と'0'は同じです)
Identity
$a === $b
配列($a)と配列($b)が同じ順序で全て同じ要素を持つときTRUEになります。
各要素の型も同じである必要があります。(0と'0'は異なります)
Inequality
$a != $b
Equalityの否定です。
Inequality
$a <> $b
Equalityの否定です。
Non-identity
$a !== $b
Identityの否定です。

用例:Union
$a = array(0=>"A", 1=>"B", 3=>"D");
$b = array(0=>"a", 1=>"b", 2=>"c");

$c = $a + $b; // Union of $a and $b
print_r($c);  // Array([0]=>A [1]=>B [3]=>D [2]=>c) を出力します

$c = $b + $a; // Union of $b and $aArray 
print_r($c);  // Array([0]=>a [1]=>b [2]=>c [3]=>D) を出力します

用例:比較
$a = array( 0=>0, 1=>1, 2=>2 );
$b = array( 2=>2, 1=>1, 0=>0 );
$c = array(0, 1, "2");
$d = array(0, 1, 2);

var_dump($a ==  $b); // bool(true ) を出力します
var_dump($a === $b); // bool(false) を出力します:要素の順序が違います
var_dump($a ==  $c); // bool(true ) を出力します
var_dump($a === $c); // bool(false) を出力します:要素の型が違います
var_dump($a ==  $d); // bool(true ) を出力します
var_dump($a === $d); // bool(true ) を出力します:要素の順序、値、型ともに同じです

.