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

Operators.
ตัวดำเนินการมีอยู่หลายประเภท โดยหลักจะแบ่งโดย จำนวนส่วนประกอบ
มี 3 ประเภท คือ
และยังมีการแบ่งชนิดตามหน้าที่การทำงานด้วย
*Arithmetic Operators
*Assignment Operators
*Bitwise Operators
*Comparison Operators
*Error Control Operators
*Execution Operators
*Incrementing และ Decrementing Operators
*Logical Operators
*String Operators
*Array Operators
*Type Operators
ระดับความสำคัญ.
Operator แต่ละตัวมีความสำคัญต่างกัน ตัวไหนมีความสำคัญมากกว่าจะถูกใช้ก่อน
ตัวอย่างของรูปแบบการประเมิน
Arithmetic Operators.
Arithmetic Operators หรือ ตัวดำเนินการทางคณิตศาสตร์ ลักษณะการใช้งานก็คล้ายกับรูปแบบคณิตศาสตร์ทั่วไป
Assignment Operators.
Assignment Operators หรือ ตัวดำเนินการกำหนดค่า คือ operator ที่ใช้ในการกำหนดค่า
Bitwise Operators.
Bitwise Operators หรือ ตัวดำเนินการทางบิท คือ operator ที่เกี่ยวข้องกับข้อมูลในระดับ bit
ตัวอย่างของการ and, or, xor แบบ bitwise
 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
<table>
<tr >
<td style="padding-left: 40px;">
ตาราง AND
</td>
<td style="padding-left: 40px;">
ตาราง OR
</td>
<td style="padding-left: 40px;">
ตาราง XOR
</td>
</tr>
</table>
ตัวอย่างข้างล่างจะเป็นอธิบาย การ 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 หรือ ตัวดำเนินการเปรียบเทียบ เป็น operator ที่ใช้เปรียบเทียบค่า 2 ค่า
อาจจะใช้ร่วมกับ Logical Operator ด้วย
และยังมี ternary operator อีกตัวคือ (? :) รูปแบบการใช้งานคือ 
จะพบว่ามีลักษณะเหมือน if-statement นั้นเอง
Error Control Operators.
Error Control Operators 
Execution Operators.
Execution Operators
Incrementing และ Decrementing Operators.
Incrementing/Decrementing Operators หรือ ตัวดำเนินการเพิ่มลด มี 4 ตัว 2 รูปแบบคือ ไว้ข้างหน้ากับไว้ข้างหลัง ซึ่งผลลัพธ์ที่ได้ต่างกัน
Logical Operators.
Logical Operators หรือ ตัวดำเนินการทางตรรกะ
ตัวอย่าง
สำหรับคนที่งงในเรื่อง or and xor ตารางนี้จะช่วยอธิบายได้ดีขึ้น
<table>
<tr >
<td style="padding-left: 40px;">
ตาราง AND
</td>
<td style="padding-left: 40px;">
ตาราง OR
</td>
<td style="padding-left: 40px;">
ตาราง XOR
</td>
</tr>
</table>
String Operators.
String Operators มีอยู่ 2 ตัวคือ
ซึ่งทำหน้าที่ในการเชื่อม string 2 ตัวเข้าด้วยกัน
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