Operators in PHP are symbols and keywords used to perform calculations, comparisons, and other operations.
演算子は、変数や値に対して計算や比較、処理を行うための記号やキーワードです。例えば「+
」は足し算、「==
」は等しいかどうかを調べるといった使い方をします。
+
PHP
echo 3 + 2; // 5
-
PHP
echo 5 - 2; // 3
*
PHP
echo 4 * 2; // 8
/
PHP
echo 8 / 2; // 4
%
PHP
echo 7 % 3; // 1
**
PHP
echo 2 ** 3; // 8 (2の3乗)
++
PHP
$x = 5;
$x++; // 6になる
--
PHP
$x = 5;
$x--; // 4になる
=
PHP
$x = 5; // $xに5を代入
+=
PHP
$x = 5;
$x += 3; // $x = $x + 3 と同じ(8になる)
-=
PHP
$x = 5;
$x -= 2; // $x = $x - 2 と同じ(3になる)
*=
PHP
$x = 5;
$x *= 2; // $x = $x * 2 と同じ(10になる)
/=
PHP
$x = 10;
$x /= 2; // $x = $x / 2 と同じ(5になる)
%=
PHP
$x = 5;
$x %= 2; // $x = $x % 2 と同じ(1になる)
**=
PHP
$x = 2;
$x **= 3; // $x = $x ** 3 と同じ(8になる)
==
PHP
if (5 == "5") {
echo "等しい"; // この条件は真
}
===
PHP
if (5 === "5") {
echo "等しい"; // この条件は偽
}
!=
または <>
PHP
if (5 != 3) {
echo "等しくない"; // この条件は真
}
<
PHP
if (3 < 5) {
echo "3は5より小さい"; // この条件は真
}
>
PHP
if (5 > 3) {
echo "5は3より大きい"; // この条件は真
}
<=
PHP
if (3 <= 3) {
echo "3は3以下"; // この条件は真
}
>=
PHP
if (5 >= 5) {
echo "5は5以上"; // この条件は真
}
!==
PHP
if (5 !== "5") {
echo "等しくないか、型が違う"; // この条件は真
}
and
または &&
PHP
if (5 > 3 and 8 > 5) {
echo "両方の条件が真";
}
or
または ||
PHP
if (5 > 3 or 8 < 5) {
echo "どちらかの条件が真";
}
!
PHP
if (!(5 > 3)) {
echo "この条件は偽";
}
xor
PHP
if (5 > 3 xor 8 > 5) {
echo "一方だけ真";
}
.
PHP
$greeting = "Hello" . " " . "World"; // "Hello World"
.=
PHP
$greeting = "Hello";
$greeting .= " World"; // $greetingは "Hello World" になる
+
PHP
$array1 = [1, 2];
$array2 = [3, 4];
$result = $array1 + $array2; // [1, 2, 3, 4]
==
PHP
$array1 = [1, 2];
$array2 = [1, 2];
if ($array1 == $array2) {
echo "同じ配列"; // この条件は真
}
===
PHP
$array1 = [1, 2];
$array2 = [1, 2];
if ($array1 === $array2) {
echo "同じ配列"; // この条件は真
}
!=
または <>
PHP
$array1 = [1, 2];
$array2 = [1, 3];
if ($array1 != $array2) {
echo "異なる配列"; // この条件は真
}
!==
PHP
$array1 = [1, 2];
$array2 = [1, 3];
if ($array1 !== $array2) {
echo "異なる配列"; // この条件は真
}
&
PHP
echo 5 & 3; // 1 (0101 & 0011 = 0001)
|
PHP
echo 5 | 3; // 7 (0101 | 0011 = 0111)
^
PHP
echo 5 ^ 3; // 6 (0101 ^ 0011 = 0110)
<<
PHP
echo 5 << 1; // 10 (0101 << 1 = 1010)
>>
PHP
echo 5 >> 1; // 2 (0101 >> 1 = 0010)
~
PHP
echo ~5; // -6 (ビット反転: 0101 -> 1010)
&&
PHP
echo 5 && 3; // 1 (0101 && 0011 = 0001)
||
PHP
echo 5 || 3; // 1 (0101 || 0011 = 0111)
??
(Null合体演算子)PHP
$a = null;
$b = $a ?? 'デフォルト';
echo $b; // 'デフォルト'
$a
が null
なので、右辺 'デフォルト'
が返されます。PHP
$a = 'Hello';
$b = $a ?? 'デフォルト';
echo $b; // 'Hello'
$a
が null
ではないため、そのまま $a
の値 'Hello'
が返されます。PHP
$a = null;
$b = $a ?? 'デフォルト';
// $a = null, $b = 'デフォルト'
??
は 変数の内容を変更しない ので、$a
は null
のままですが、$b
は 'デフォルト'
に設定されます。??=
(Null合体代入演算子)PHP
$a = null;
$a ??= 'デフォルト';
echo $a; // 'デフォルト'
$a
が null
なので、右辺 'デフォルト'
が代入されます。PHP
$a = 'Hello';
$a ??= 'デフォルト';
echo $a; // 'Hello'
$a
が null
ではないため、代入は行われず、そのまま 'Hello'
が保持されます。PHP
$a = null;
$a ??= 'デフォルト';
// $a = 'デフォルト'
??=
は 変数の内容を変更する ので、$a
の値が 'デフォルト'
に更新されます。?:
PHP
$result = (5 > 3) ? "真" : "偽"; // "真"
instanceof
PHP
$object = new MyClass();
if ($object instanceof MyClass) {
echo "MyClassのインスタンス";
}