式と演算子

式(expression)

PHPの式の多くは、

を組み合わせてつくられています。

式の評価
  • 式の計算が、式の評価にあたります
  • 評価された結果を「式の値」と呼びます

演算子

  • 簡単な計算をしたり長い文字列をつなぎ合わせる
  • 代入演算子
  • 数値の演算
  • 文字列の演算
  • 単項演算子
  • 代入を伴う演算子
算術演算子で「四則演算」や「変数の結合」
<?php
  $tanka = 300;
  $suryo = 10;
  $waribiki = 500;
  $total = $tanka * $suryo - $waribiki;
  echo $total;
文字列結合演算子
<?php
  $tanka = 300;
  $suryo = 10;
  $waribiki = 500;
  $total = $tanka * $suryo - $waribiki;
  echo '合計金額は、' . $total .  '円です。';
?>

結合代入演算子
  • 変数の後に新たな文字列を継ぎ足しできる演算子
<?php
  $temp = '鈴木さん、';
  $temp = $temp . 'こんにちは。';
  $temp = $temp . '今日は月曜日です。';
  echo $temp;


「結合代入演算子」を使って書き換えます。

<?php
  $temp = '山本さん、';
  $temp .=  'こんにちは。';
  $temp .=  '今日は月曜日です。';
  echo $temp;

演算子の種類

記号 名前 記号 名前
+ 加算 == 等価
- 減算 === 等価
* 乗算 != 非等価
/ 除算 <> 非等価
% 剰余 !=== 非等価
+ 単項+ ! 論理否定
- 単項- && 論理積
~ 補数 || 論理和
& ビット論理積 and 論理積
| ビット論理和 or 論理和
^ ビット排他的論理和 xor 排他的論理和
= 代入 , 順次
<< 左シフト () 関数呼び出し
>> 右シフト () キャスト
++ インクリメント [] 配列添え字
-- デクリメント @ エラー制御
> より大きい -> メンバ参照
>= 以上 ? : 条件
< 未満 new オブジェクト作成
<= 以下 instanceof オブジェクトのクラス

インクリメント・デクリメント

  • 「++」演算子は、インクリメント演算子(increment operator)と呼ばれます
  • 「--」演算子は、デクリメント演算子(decrement operator)と呼ばれます
  • 何らかの処理を1つずつ値を増やしたり減らしたりの繰り返しを1回ずつカウントするために用いられます
変数$aの値を1増やします
<?php
$a++;
値を1増やす演算は、このようにも書けます
<?php
$a = $a + 1;
変数$aの値を1減らします
<?php
$a--;
値を1減らす演算は、このようにも書けます
<?php
$a = $a - 1;

代入演算子(assignment operator)

  • 左辺の変数に右辺の値を代入する

記号 名前
+= 加算代入
-= 減算代入
*= 乗算代入
/= 除算代入
%= 剰余代入
$= 論理積代入
^= 排他的
|= 論理和代入
<<= 左シフト代入
>>= 右シフト代入

$a+$bの値を$aに代入

<?php
$a += $b;

演算子の優先順位

  • 通常の四則演算と同じです。
  • カッコ内が先に評価されます。
左結合(left associative)
<?php
($a + $b) + 1
右結合(right associative)
<?php
$a = ($b = 1)


《例》

<?php
// 演算子

// 代入演算子 = 
$x = 5;

// 数値に関するもの + - * / %
// echo (10 % 3) * 5;

// 文字列の連結演算子 .
echo 'hello ' . 'world';

// 単項演算子 ++ --
$x++; // $x = $x + 1
++$x;

// 代入を伴う演算子
$x += 5; // $x = $x + 5;
$x *= 5; // $x = $x * 5;

文字列の連結

  • 「ドット」は、文字列連結演算子と呼びます。
  • 変数を連結するだけの場合は、{ }は不要です。