ภาษาพีเอชพี/ตัวดำเนินการ

Operators
Operators.
ตัวดำเนินการมีอยู่หลายประเภท โดยหลักจะแบ่งโดย จำนวนส่วนประกอบ
มี 3 ประเภท คือ

unary operator (ประกอบด้วยหนึ่งส่วน เช่น ++ -- !)
binary operator (ประกอบด้วยสองส่วน เช่น + - * / =)
ternary operator (ประกอบด้วยสามส่วน เช่น ?:)

ระดับความสำคัญ
ระดับความสำคัญ.
Operator แต่ละตัวมีความสำคัญต่างกัน ตัวไหนมีความสำคัญมากกว่าจะถูกใช้ก่อน

โดยถ้า operator ที่มีความสำคัญเท่ากัน ก็จะขึ้นอยู่กับ รูปแบบการประเมิน ว่ามีทิศทางไปทางไหน

Arithmetic Operators
Arithmetic Operators.
Arithmetic Operators หรือ ตัวดำเนินการทางคณิตศาสตร์ ลักษณะการใช้งานก็คล้ายกับรูปแบบคณิตศาสตร์ทั่วไป
Assignment Operators
Assignment Operators.
Assignment Operators หรือ ตัวดำเนินการกำหนดค่า คือ operator ที่ใช้ในการกำหนดค่า
Bitwise Operators
Bitwise Operators.
Bitwise Operators หรือ ตัวดำเนินการทางบิท คือ operator ที่เกี่ยวข้องกับข้อมูลในระดับ bit

โดย bit ที่มีค่าเป็น 0 เรียกว่า clear มีค่าเป็น 1 เรียกว่า set

 Bitwise AND
 ( 0 = 0000) & ( 5 = 0101) = ( 0 = 0000)
 ( 1 = 0001) & ( 5 = 0101) = ( 1 = 0001)
 ( 2 = 0010) & ( 5 = 0101) = ( 0 = 0000)
 ( 4 = 0100) & ( 5 = 0101) = ( 4 = 0100)
 ( 8 = 1000) & ( 5 = 0101) = ( 0 = 0000)
 Bitwise Inclusive OR
 ( 0 = 0000) | ( 5 = 0101) = ( 5 = 0101)
 ( 1 = 0001) | ( 5 = 0101) = ( 5 = 0101)
 ( 2 = 0010) | ( 5 = 0101) = ( 7 = 0111)
 ( 4 = 0100) | ( 5 = 0101) = ( 5 = 0101)
 ( 8 = 1000) | ( 5 = 0101) = (13 = 1101)
 Bitwise Exclusive OR (XOR)
 ( 0 = 0000) ^ ( 5 = 0101) = ( 5 = 0101)
 ( 1 = 0001) ^ ( 5 = 0101) = ( 4 = 0100)
 ( 2 = 0010) ^ ( 5 = 0101) = ( 7 = 0111)
 ( 4 = 0100) ^ ( 5 = 0101) = ( 1 = 0001)
 ( 8 = 1000) ^ ( 5 = 0101) = (13 = 1101)
ตัวอย่างการใช้งานใน PHP
ตัวอย่างข้างล่างจะเป็นอธิบาย การ shift bit ทั้งซ้ายและขวา
 --- Shift bit ของ จำนวนเต็มบวก ไปทางขวา --- 
 4 » 1 = 2
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=0000 0010
 4 » 2 = 1
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=0000 0001
 4 » 3 = 0
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=0000 0000
 --- Shift bit ของ จำนวนเต็มบวก ไปทางซ้าย --- 
 4 « 1 = 8
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=0000 1000
 4 « 2 = 16
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=0001 0000
 4 « 3 = 0
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=0010 0000
 4 « 6 = -128
 Binary:
 ค่าเริ่มต้น=0000 0100
 ผลลัพธ์=1000 0000
 **เนื่องจากเลื่อนบิทไปเปลี่ยนค่าของ sign-bit ซึ่งเป็นตัวบอกเครื่องหมายของจำนวนเต็ม
 --- Shift bit ของ จำนวนเต็มลบ ไปทางขวา --- 
 -4 » 1 = -2
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=1111 1110
 **เป็น 1 เพราะเอา sign-bit มาเติม bit
 -4 » 2 = -1
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=1111 1111
 -4 » 3 = -1
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=1111 1111
 --- Shift bit ของ จำนวนเต็มลบ ไปทางขวา --- 
 -4 « 1 = -8
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=1111 1000
 -4 « 2 = -16
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=1111 0000
 -4 « 3 = -32
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=1110 0000
 -4 « 6 = 0
 Binary:
 ค่าเริ่มต้น=1111 1100
 ผลลัพธ์=0000 0000
 **sign-bit หลุดออกไปด้วย
Comparison Operators
Comparison Operators.
Comparison Operators หรือ ตัวดำเนินการเปรียบเทียบ เป็น operator ที่ใช้เปรียบเทียบค่า 2 ค่า
อาจจะใช้ร่วมกับ Logical Operator ด้วย
และยังมี ternary operator อีกตัวคือ (? :) รูปแบบการใช้งานคือ 

(expr1) ? (expr2) : (expr3) คือถ้า expr1 มีค่า TRUE จะเลือกใช้ expr2 แต่ถ้า expr1 เป็น FALSE จะเลือก expr3

Error Control Operators
Error Control Operators.
Error Control Operators 
Execution Operators
Execution Operators.
Execution Operators
Incrementing และ Decrementing Operators
Incrementing และ Decrementing Operators.
Incrementing/Decrementing Operators หรือ ตัวดำเนินการเพิ่มลด มี 4 ตัว 2 รูปแบบคือ ไว้ข้างหน้ากับไว้ข้างหลัง ซึ่งผลลัพธ์ที่ได้ต่างกัน
Logical Operators
Logical Operators.
Logical Operators หรือ ตัวดำเนินการทางตรรกะ
ตัวอย่าง
สำหรับคนที่งงในเรื่อง or and xor ตารางนี้จะช่วยอธิบายได้ดีขึ้น
String Operators
String Operators.
String Operators มีอยู่ 2 ตัวคือ

.=

Array Operators
Array Operators.
Array Operators
โดย operator + (ยูเนี่ยน) จะเอา element ของ arrayด้านขวามือ ไปเพิ่มใส่ arrayด้านซ้ายมือ ถ้าหากว่า key ซ้ำกันก็จะ ไม่เกิดการเขียนทับ
Output:
 Union of $a and $b:
 array(3) {
 ["a"]=>
 string(5) "apple"
 ["b"]=>
 string(6) "banana"
 ["c"]=>
 string(6) "cherry"
 Union of $b and $a:
 array(3) {
 ["a"]=>
 string(4) "pear"
 ["b"]=>
 string(10) "strawberry"
 ["c"]=>
 string(6) "cherry"
การเทียบ element 1 คู่นั้น จะถือว่าเท่ากันได้ก็ต่อเมื่อ key และ value นั้นเท่ากัน
Type Operators
Type Operators.
Type Operators
สารบัญ

รูปแบบคำสั่งพื้นฐาน (Basic Syntax)
ประเภทของตัวแปร (Types)
ตัวแปร (Variables)
ค่าคงที่ (Constants)
นิพจน์ (Expression)
ตัวดำเนินการ (Operators)
โครงสร้างควบคุม (Control Structure)