PHP - 演算子:プログラミングの魔法のガイド

こんにちは、将来のコード魔術師さんたち!? あなたの近所のパソコンの先生で、数年の経験を持つ者として、PHPの演算子の世界に興味深い旅を一緒に楽しむことができることを嬉しく思います。コードを書いたことがない方も心配しないでください。基礎から一緒に知識を築いていきましょう。では、virtual wand(キーボード)を手にとって、一緒に飛び込みましょう!

PHP - Operators

PHPでの演算子とは?

厨房で美味しいケーキを焼こうとしていると想像してみてください。材料(データ)はありますが、それらを混ぜたり、計量したり、比較するための道具が必要です。プログラミングの世界では、演算子がその道具です。データに特定の操作を行う手助けをしてくれます。

PHPでは、演算子は値や変数に対して特定の操作を行うためのシンボルやキーワードです。コードが役立つことをするための魔法の呪文です!

簡単な例から始めましょう:

<?php
$magicNumber = 42;
$result = $magicNumber + 8;
echo $result;
?>

この呪文...つまりコードでは、'+'が私たちの演算子です。PHPに8を$magicNumberに加えるように指示しています。これを実行すると、50が表示されます。まるで魔法のようです!

PHPの算術演算子

では、基本的な数学の魔法を探ってみましょう。算術演算子は、すべてのコード魔術師が知っておくべき基本的な呪文です。

以下に算術演算子とその例を示します:

演算子 名前 結果
+ 加算 $a + $b $aと$bの和
- 減算 $a - $b $aと$bの差
* 掛け算 $a * $b $aと$bの積
/ 除算 $a / $b $aを$bで割った商
% 剰余 $a % $b $aを$bで割った剰余
** 繰り返し乗算 $a ** $b $aを$b回目の乗算

これらを実行してみましょう:

<?php
$potion1 = 10;
$potion2 = 3;

echo $potion1 + $potion2; // 出力: 13
echo $potion1 - $potion2; // 出力: 7
echo $potion1 * $potion2; // 出力: 30
echo $potion1 / $potion2; // 出力: 3.3333333333333
echo $potion1 % $potion2; // 出力: 1
echo $potion1 ** $potion2; // 出力: 1000
?>

各行は異なる算術操作を行っています。'%'演算子は少し奇妙に見えるかもしれませんが、数が偶数か奇数かを確認する場合や、循環パターンを扱う場合に非常に便利です。

PHPの比較演算子

次に、比較演算子の魔法を探ってみましょう。これらは、値間の関係についての真実を明らかにする「Revelio」呪文のようなものです。

以下に比較演算子を示します:

演算子 名前 結果
== 等しい $a == $b $aが$bと等しい場合にTrue
=== 同値 $a === $b $aが$bと等しく、かつ同じ型の場合にTrue
!= 等しくない $a != $b $aが$bと等しくない場合にTrue
<> 等しくない $a <> $b $aが$bと等しくない場合にTrue
!== 同値でない $a !== $b $aが$bと等しくない、または型が異なる場合にTrue
< 小于 $a < $b $aが$bよりも小さい場合にTrue
> 大于 $a > $b $aが$bよりも大きい場合にTrue
<= 小于または等しい $a <= $b $aが$b以下の場合にTrue
>= 大于または等しい $a >= $b $aが$b以上の場合にTrue
<=> 宇宙船 $a <=> $b $aが$bよりも小さい場合に-1、等しい場合に0、大きい場合に1を返す

これらを実行してみましょう:

<?php
$wandLength1 = 11;
$wandLength2 = "11";

var_dump($wandLength1 == $wandLength2);  // 出力: bool(true)
var_dump($wandLength1 === $wandLength2); // 出力: bool(false)
var_dump($wandLength1 < 12);             // 出力: bool(true)
var_dump($wandLength1 <=> 12);           // 出力: int(-1)
?>

'=='と'==='の違いに注意してください。'==='は値と型の両方をチェックしますが、'=='は値だけでチェックします。

PHPの論理演算子

論理演算子は、コードの決定者です。複数の条件を結合する手助けをしてくれ、まるで熟練した魔術師が異なる呪文を組み合わせて強力な効果を発揮するようなものです。

以下に論理演算子を示します:

演算子 名前 結果
and そして $a and $b $aと$bが共にTrueの場合にTrue
or または $a or $b $aまたは$bがTrueの場合にTrue
xor 排他的または $a xor $b $aまたは$bがTrueだが、両方ともTrueでない場合にTrue
&& そして $a && $b $aと$bが共にTrueの場合にTrue
または $a
! ない !$a $aがTrueでない場合にTrue

これらを実行してみましょう:

<?php
$isWizard = true;
$hasWand = false;

var_dump($isWizard && $hasWand); // 出力: bool(false)
var_dump($isWizard || $hasWand); // 出力: bool(true)
var_dump(!$hasWand);             // 出力: bool(true)
?>

この例では、魔術師が杖を持っていない場合、'&&'演算子はFalseを返し、'||'演算子はTrueを返します。'!'演算子は真偽値を反転します。

PHPの代入演算子

代入演算子は、「Accio」呪文のようなものです。値を変数に呼び寄せます。基本的な代入演算子は'='ですが、PHPにはいくつかの便利な trick があります。

以下に代入演算子を示します:

演算子 等しい
= $a = $b $a = $b
+= $a += $b $a = $a + $b
-= $a -= $b $a = $a - $b
*= $a *= $b $a = $a * $b
/= $a /= $b $a = $a / $b
%= $a %= $b $a = $a % $b
.= $a .= $b $a = $a . $b

これらを実行してみましょう:

<?php
$spellPower = 10;
$spellPower += 5; // $spellPowerは今15になりました
echo $spellPower . "\n";

$spellName = "Lumos";
$spellName .= " Maxima"; // $spellNameは今"Lumos Maxima"になりました
echo $spellName;
?>

'+='演算子は変数に値を加えてから代入します。'.='演算子は文字列を結合します。

PHPの文字列演算子

文字列を扱うための特別な演算子もあります。以下に示します:

演算子 名前 結果
. 結合 $a . $b $aと$bを結合
.= 結合代入 $a .= $b $aに$bを追加

これらを実行してみましょう:

<?php
$firstName = "Harry";
$lastName = "Potter";
$fullName = $firstName . " " . $lastName;
echo $fullName . "\n"; // 出力: Harry Potter

$greeting = "Hello, ";
$greeting .= $fullName;
echo $greeting; // 出力: Hello, Harry Potter
?>

'.'演算子は文字列を結合し、'.='演算子は既存の文字列に文字列を追加します。

PHPの配列演算子

配列は、複数のアイテムを保持するための魔法の容器のようなものです。PHPには配列を扱うための特別な演算子があります:

演算子 名前 結果
+ 統合 $a + $b $aと$bを統合
== 等しい $a == $b $aと$bが同じキー/値を持つ場合にTrue
=== 同値 $a === $b $aと$bが同じキー/値を持っていて、順序も型も同じ場合にTrue
!= 等しくない $a != $b $aが$bと等しくない場合にTrue
<> 等しくない $a <> $b $aが$bと等しくない場合にTrue
!== 同値でない $a !== $b $aが$bと同値でない場合にTrue

これらを実行してみましょう:

<?php
$spellBook1 = ["Lumos", "Expelliarmus"];
$spellBook2 = ["Accio", "Alohomora"];

$allSpells = $spellBook1 + $spellBook2;
print_r($allSpells);

$spellBook3 = ["Lumos", "Expelliarmus"];
var_dump($spellBook1 == $spellBook3);  // 出力: bool(true)
var_dump($spellBook1 === $spellBook3); // 出力: bool(true)
?>

'+'演算子は配列を統合しますが、左側の配列のキーが重複する場合は左側のキーを保持します。'=='と'==='は配列を比較しますが、'==='は順序と型も確認します。

PHPの条件演算子

時にはコード内で迅速な決定を行う必要があります。その際に便利なのが ternary 演算子です。これは迷你のif-elseステートメントのようなものです:

<?php
$isOfAge = 17;
$canUseWand = ($isOfAge >= 17) ? "Yes" : "No";
echo $canUseWand; // 出力: Yes
?>

この演算子は条件をチェックし、Trueの場合に一つの値、Falseの場合に別の値を返します。条件に基づいて値を代入するのに非常に便利です。

PHPの演算子カテゴリ

私たちの魔法の旅をまとめます。以下に演算子をカテゴリ分けします:

  1. 算術演算子: +, -, *, /, %, **
  2. 代入演算子: =, +=, -=, *=, /=, %=, .=
  3. 比較演算子: ==, ===, !=, <>, !==, <, >, <=, >=, <=>
  4. 論理演算子: and, or, xor, &&, ||, !
  5. 文字列演算子: ., .=
  6. 配列演算子: +, ==, ===, !=, <>, !==
  7. 条件演算子: ?:

PHPの演算子の優先順位

PHPの演算子には優先順位があります。複雑な式ではどの操作が先に実行されるかを決定します。以下に簡略化された優先順位リストを示します:

  1. ** (指数)
  2. ! (論理NOT)
  3. *, /, % (乗算、除算、剰余)
  4. +, - (加算、減算)
  5. <, <=, >, >= (比較)
  6. ==, !=, ===, !== (等価)
  7. && (論理AND)
  8. || (論理OR)
  9. = (代入)

括弧を使用して操作の順序を制御することもできます。

そして、若い魔術師たちは、PHPの演算子の魔法を学びました。これらの呪文を練習し、プロのコーダーとしての道を進むためには、練習と忍耐が鍵です。実験を続け、間違えないでください。それが私たちが学び、成長する方法です。次回のレッスンまで、 wandを準備し、PHPの不思議を開放してください!

Credits: Image by storyset