PHP - 運算子:您的友善編程魔法指南

你好,未來的編程巫師們!? 作為一位經驗豐富的鄰居計算機老師,我非常高興能夠帶領你們踏上一段令人興奮的PHP運算子世界之旅。別擔心如果你從未編過程序——我們將從頭開始,一起逐步建立知識。所以,拿起你的虛擬魔杖(鍵盤),讓我們一起深入探討吧!

PHP - Operators

PHP中的運算子是什麼?

想像你在一個廚房裡,試圖烘烤一個美味的蛋糕。你有食材(數據),但你需要工具來混合、測量和比較它們。在編程世界中,運算子就是這些工具。它們幫助我們對數據進行操作,就像搅拌器幫助你混合食材一樣。

在PHP中,運算子是符號或關鍵字,告訴計算機對值或變量進行特定的操作。它們是我們代碼中發揮作用的神奇魔法!

讓我們從一個簡單的例子開始:

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

在這個咒語……我是說,代碼中,'+'是我們的運算子。它告訴PHP將8加到我們的$magicNumber上。當你運行這段代碼時,你會看到50出現——彷彿魔法一般!

PHP中的算術運算子

現在,讓我們探索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,則為真
=== 同值同類型 $a === $b 如果$a等於$b且它們類型相同,則為真
!= 不相等 $a != $b 如果$a不等於$b,則為真
<> 不相等 $a <> $b 如果$a不等於$b,則為真
!== 不同值或不同類型 $a !== $b 如果$a不等於$b或它們類型不同,則為真
< 小於 $a < $b 如果$a嚴格小於$b,則為真
> 大於 $a > $b 如果$a嚴格大於$b,則為真
<= 小於或等於 $a <= $b 如果$a小於或等於$b,則為真
>= 大於或等於 $a >= $b 如果$a大於或等於$b,則為真
<=> 飛船 $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都為真,則為真
or 或者 $a or $b 如果$a或$b為真,則為真
xor 排除或 $a xor $b 如果$a或$b為真,但不是兩者都為真,則為真
&& 並且 $a && $b 如果$a和$b都為真,則為真
或者 $a
! 不是 !$a 如果$a不為真,則為真

讓我們看看這些如何工作:

<?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有一些花招來讓我們的生活更輕鬆。

以下是一張賦值運算子的表格:

運算子 範例 等同於
= $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中的字符串運算子

說到字符串,PHP有一些特殊的運算符來處理文本。這裡只有兩個,但它們非常強大:

運算子 名稱 範例 結果
. 連接 $a . $b $a和$b的連接
.= 連接賦值 $a .= $b 將$b添加到$a的末尾

讓我們施放一個字符串咒語:

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

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

'.'運算符將字符串連接在一起,而'.='運算符將字符串添加到現有字符串的末尾。這就像對文字的魔法膠水!

PHP中的數組運算子

PHP中的數組就像魔法容器,可以存放多個項目。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
$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中的條件運算符

有時我們需要在代碼中快速做出決策。這時,三元運算符就派上用場了。它就像一個迷你if-else語句:

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

這個運算符檢查一個條件,如果為真則返回一個值,如果為假則返回另一個值。它是基於條件為真或假來賦值的快捷方式。

PHP中的運算符分類

讓我們把我們神奇的旅程結束,將我們的運算符分類:

  1. 算術運算符:+, -, *, /, %, **
  2. 賦值運算符:=, +=, -=, *=, /=, %=, .=
  3. 比較運算符:==, ===, !=, <>, !==, <, >, <=, >=, <=>
  4. 邏輯運算符:and, or, xor, &&, ||, !
  5. 字符串運算符:., .=
  6. 數組運算符:+, ==, ===, !=, <>, !==
  7. 條件運算符:?:

PHP中的運算符優先級

就像在數學中一樣,PHP運算符有一個優先級。這決定了在複雜表達式中哪些操作先執行。以下是一個簡化的優先級列表,從最高到最低:

  1. ** (乘方)
  2. ! (邏輯非)
  3. *, /, % (乘法、除法、取模)
  4. +, - (加法、減法)
  5. <, <=, >, >= (比較)
  6. ==, !=, ===, !== (等價)
  7. && (邏輯與)
  8. || (邏輯或)
  9. = (賦值)

記住,你可以總是使用括號來控制操作的順序,就像在數學課上一样!

那麼,年輕的巫師們,你們已經完成了PHP運算子魔法的第一課。練習這些咒語……我是說,運算符,並且很快你們將能夠像專家一樣編程!記住,掌握任何魔法的關鍵是練習和耐心。繼續實驗,不要害怕犯錯誤——這是我們作為編程者學習和成長的方式。在我們的下一次課程之前,請保持你的魔杖準備好,並且對PHP的奇蹟持開放的心態!

Credits: Image by storyset