Operator คืออะไร? และการใช้ใน PHP
Operator คือตัวกระทำการ โดยที่ Operator จะนำเอา Operand มากระทำบางอย่างเช่น
a + b
เราจะเรียก a และ b ว่าเป็น Operand
เราจะเรียกเครื่องหมาย + ว่าเป็น Operator
ดังนั้นจาก a + b เราจะแยกออกเป็น a(Operand) มาบวก(Operator)กับ b(Operand)
Operator เป็นสิ่งที่ต้องรู้จักและทำความเข้าใจให้ดีเพราะมีผลต่อการทำงานของ Application เรามากๆ bug หรือ defect ส่วนใหญ่ก็เกิดจากความไม่เข้าใจใน Operator นี่แหละ ซึ่งใน PHP จะแบ่ง Operator ออกเป็นกลุ่มๆ ดังนี้
- Arithmetic operators
- Assignment operators
- Comparison operators
- Increment/Decrement operators
- Logical operators
- String operators
- Array operators
Arithmetic operators
กลุ่มนี้เป็นกลุ่มของการคำนวน ใช้กับตัวเลข
Example |
Name | Result |
---|---|---|
-$a | Negation | ค่าตรงข้ามของ $a ถ้า $a เป็น + ค่าที่ได้จะกลายเป็น - ถ้า $a เป็น - ค่าที่ได้จะกลายเป็น + |
$a + $b | Addition | ผลบวกของ $a และ $b |
$a - $b | Subtraction | ผลลบของ $a และ $b |
$a * $b | Multiplication | ลคูณของ $a และ $b |
$a / $b | Division | ผลหารของ $a และ $b |
$a % $b | Modulus | ผลที่ได้จะเป็น “เศษ” ที่ได้จากการหารของ $a และ $b |
$a ** $b | Exponentiation | ผลที่ได้จะเป็น $a ยกกำลัง $b |
Assignment operators
เป็นกลุ่มของการกำหนดค่าให้กับตัวแปร ใช้กับตัวเลขเท่านั้น
กำหนดค่า | เหมือนกับ | รายละเอียด |
---|---|---|
$x = $y | $x = $y | กำหนดค่าของตัวแปรด้านขวาให้กับตัวแปรด้านซ้าย |
$x += $y | $x = $x + $y | เพิ่มค่าไปอีก $y จากค่าที่ $x มีอยู่ |
$x -= $y | $x = $x - $y | ลดค่าลงไป $y จากที่ $x มีอยู่ |
$x *= $y | $x = $x * $y | $x เท่ากับ $x คูณ $y |
$x /= $y | $x = $x / $y | $x เท่ากับ $x หาร $y |
$x %= $y | $x = $x % $y | $x เทากับ เศษที่ได้จากการนำ $x ไปหารด้วย $y |
Comparison operators
กลุ่มของการเปรียบเทียบ ผลลัพธ์จาก Operator กลุ่มนี้จะเป็น TRUE หรือ FALSE
Example | Result |
---|---|
$a == $b | TRUE ถ้า $a< มีค่าเทียบเท่ากับ $b< ไม่จำเป็นต้องมี Data Type เดียวกัน เช่น 0 มีค่าเทียบเท่ากับ False |
$a === $b |
TRUE ถ้า $a< มีค่าเท่ากับ $bและมี Data Type ชนิดเดียวกัน
|
$a != $b | TRUE ถ้า $a< ไม่เท่ากับ $b< หลังจากที่ PHP พยายามแปลงค่าดังนั้นจึงได้ว่า $a ไม่เทียบเท่ากับ $b |
$a <> $b | TRUE ถ้า $a< ไม่เทียบเท่ากับ $b< เหมือนกับ "!=" |
$a !== $b |
TRUE ถ้าค่าของ $a< ไม่เท่ากับ $b<หรือมี Data Type ไม่เหมือนกัน |
$a < $b | TRUE ถ้า $a< มีค่าน้อยกว่า $b< |
$a > $b | TRUE ถ้า $a< มีค่ามากกว่า $b |
$a <= $b | TRUE ถ้า $a มีค่าน้อยกว่าหรือเท่ากับ $b |
$a >= $b | TRUE ถ้า $a มีค่ามากกว่าหรือเท่ากับ $b |
Increment/Decrement operators
กลุ่มนี้เป็นกลุ่มของการเพิ่มค่า และการลดค่าของตัวแปร
Example | Effect |
---|---|
++$a | เพิ่มค่า $a อีก 1 ก่อนจะที่จะทำการ return ค่า |
$a++ | return ค่า $aก่อนแล้วถึงจะทำการเพิ่มค่าทีหลัง |
--$a | ลดค่าของ $a ลง 1 แล้วค่อยทำการ return ค่า |
$a-- | return ค่า $aก่อนแล้วค่อยทำการลดค่าของ $aลง 1 |
การใช้งานเครื่องหมาย ++ และ – อย่างง่ายๆคือ ถ้าเราไม่ทำการ return ค่าของตัวแปรออกไปก็จะไม่ต้องกังวลกับเครื่องหมาย ++ หรือ –
เราควรจะใช้ $x++; อย่างเดียว อย่าพยายามใช้ echo $x++;
Logical operators
เป็นกลุ่มของการเชื่อมเงื่อนไขต่างๆ เข้าด้วยกัน
Example | Name | Result |
---|---|---|
$a and $b | And | TRUE ถ้าค่าของ $a และ $b เป็นจริง |
$a or $b | Or | TRUE ถ้าค่าของ $a หรือ $b เป็นจริง |
$a xor $b | Xor | TRUE ถ้าค่าของ $a และ $b ต่างกันถ้าตัวใดตัวหนึ่งเป็น TRUE อีกตัวต้องเป็น FALSE |
! $a | Not | TRUE ถ้า $a เป็น FALSE . |
$a && $b | And | TRUE ถ้าค่าของ $a และ $b เป็นจริง เหมือนกับ "and" |
$a || $b | Or | TRUE ถ้าค่าของ $a หรือ $b เป็นจริง เหมือนกับ "or" |
String operators
กลุ่มของ operators ที่ทำงานกับข้อความ
Example | Name | Result |
---|---|---|
$a . $b | Concatenation | เชื่อมข้อความ $a และ $bเข้าด้วยกัน |
$a .= $b | Concatenation assignment | เชื่อมข้อความ $b ต่อท้าย $a |
Array operators
กลุ่มของ operators ที่ทำงานกับ array
Example | Name | Result |
---|---|---|
$a + $b | Union | นำเอา Array $a และ $b มา Union กัน |
$a == $b | Equality | TRUE ถ้า $a และ $b มีค่าใน Array เหมือนกัน เทียบทั้ง Key และ Value(ไม่จำเป็นต้องเรียงลำดับ) |
$a === $b | Identity | TRUE ถ้า $a และ $b เป็นตัวแปรชนิดเดียวกัน รวมทั้งมีค่า key และ value ตรงกัน (ตามลำดับ) |
$a != $b | Inequality | TRUE ถ้า $a ไม่เท่ากับ Array $b |
$a <> $b | Inequality | TRUE ถ้า $a< ไม่เท่ากับ Array $b< เหมือนกับ "!=" |
$a !== $b | Non-identity | TRUE ถ้า $a< ไม่เท่ากับ Array $b<ตรงข้ามกับ "===" |