ตัวดำเนินการและนิพจน์
หน่วยการเรียนรู้ที่ 2 เรื่อง การเขียนโปรแกรมพื้นฐาน
โอเปอเรเตอร์ (Operator)
โอเปอเรเตอร์ (Operator) คือ ตัวดําเนินการทางคณิตศาสตร์ คือ การดําเนินการทางตรรกศาสตร์ หรืออื่นๆ โอเปอเรเตอร์จะเป็นเครื่องหมาย หรือสัญลักษณ์พิเศษ เช่น +, -, *, /, &&, ||, >, <
โอเปอแรนด์ (Operand)
โอเปอแรนด์ (Operand) คือ ตัวถูกดําเนินการ ซึ่งเป็นได้ทั้ง ค่าคงที่ ตัวแปร นิพจน์ หรือ function ก็ได้
นิพจน์ (Expression)
นิพจน์ (Expression) คือการทําเอาโอเปอเรเตอร์ และโอเปอแรนด์หลายๆตัวเข้าด้วยกัน มาเป็นประโยคเดียว
ตัวดำเนินการคณิตศาสตร์ (Arithmetic operators)
เป็นตัวดำเนินการในการหาผลลัพธ์จากการกระทำทางคณิตศาสตร์ เช่น การบวก การลบ การคูณ และหารหาร โดยมีตัวเลขเป็น Operand และจะได้ผลลัพธ์สุดท้ายออกมาค่าเดียว
ใน 4 ตัวดำเนินการแรกนั้นเป็นตัวดำเนินการพื้นฐานในทางคณิตศาสตร์ แต่ในตัวดำเนินการสุดท้าย Modulo นั้นเป็นการหารแบบเอาเศษ
ต่อไปเป็นตัวอย่างการใช้ตัวดำเนินการแบบต่างๆ
ในตัวอย่างเป็นโปรแกรมในการคำนวณหาภาษามูลค่าเพิ่มจากการซื้อสิ้นค้า โดยเรามีราคาของสิ้นค้าที่ยังไม่รวมภาษาษีและอัตราของภาษา และคำนวณสำหรับราคาทั้งหมดที่ต้องจ่ายหลังจากรวมกับภาษีแล้ว
ตัวแปร $price นั้นเป็นราคาสิ้นค้าที่ยังไม่ได้รวมกับภาษี และตัวแปร $tax_rate เป็นอัตราภาษีต่อ 100% และคุณสามารถเปลี่ยนค่าของตัวแปรเหล่านี้ได้
ในตัวแปร $tax_priceเป็นการคำนวณหาราคาที่เพิ่มขึ้นมาจากภาษี และ $total_price เป็นการหาราคาทั้งหมดเมื่อรวมกับภาษีแล้ว
นี่เป็นผลลัพธ์ของโปรแกรม ซึ่งอธิบายได้ว่าเมื่อคุณซื้อของในราคา 150 และมีภาษี 10% ราคาทั้งหมดที่คุณจะต้องจ่ายหลังจากรวมภาษีแล้วคือ 165
ตัวดำเนินการกำหนดค่าแบบผสม (Compound assignment)
Compound assignment operators คือตัวดำเนินการที่รวมระหว่างตัวดำเนินการทางคณิตศาสตร์และตัวดำเนินการกำหนดค่า มันใช้สำหรับอัพเดทข้อมูลที่อ้างอิงจากข้อมูลในปัจจุบัน หรือกล่าวอีกนัยหนึ่ง มันเป็นรูปแบบที่สั้นกว่าของตัวดำเนินการทางคณิตศาสตร์
ในตัวอย่าง เป็นโปรแกรมแสดงการทำงานของการสร้างตึก ตัวแปร $floor สำหรับเก็บค่าจำนวนชั้นของตึกที่ทำการสร้างเสร็จแล้ว ในแต่ละวันที่ทำการสร้างตึกเสร็จ จะนำจำนวนชั้นใหม่ไปบวกเพิ่มกับวันก่อนหน้า เช่น ในวันแรกสร้างเสร็จไป 3 ชั้นจะได้ $floor += 3; ซึ่งตัวดำเนินการเหล่านี้เป็นรูปแบบที่สั้นขึ้นจาก $floor = $floor + 3; นี่คือการลดการใช้ Operand ที่ไม่จำเป็นออกไป ในการเขียนคุณสามารถใช้แบบไหนก็ได้
ตัวดำเนินการยูนารีแบบเพิ่มค่าและลดค่าทีละหนึ่ง
ตัวดำเนินการเพิ่มค่าและตัวดำเนินการลบค่า จะใช้เครื่องหมาย - - เพื่อลดค่าทีละหนึ่ง และเครื่องหมาย + + เพื่อเพิ่มค่าทีละหนึ่ง โดยเขียนนำหน้าค่าตัวแปรหรือหลังตัวแปรก็ได้
การเพิ่มค่าทีละหนึ่ง (Increment)
ใช้ a++ หรือ ++a ก็มีความหมายเดียวกันกับนิพจน์ a = a + 1
การลดค่าทีละหนึ่ง (Decrement)
ใช้ b-- หรือ --b ก็มีความหมายเดียวกันกับนิพจน์ a = b – 1
ตัวดำเนินการเปรียบเทียบ (Comparison Operators)
เครื่องหมายที่ใช้ในการเปรียบเทียบในทางคณิตศาสตร์ ผลลัพธ์จะมี 2 กรณีคือ ถ้าผลลัพธ์ถูกต้องหรือเป็นจริง (True) จะมีค่าเป็น 1 ถ้าผลลัพธ์ผิดหรือเป็นเท็จ (False) จะมีค่าเป็น 0 ผลลัพธ์ของการเปรียบเทียบ เรียกว่า ค่าคงที่บูลีน (Boolean Constant)
ในภาษา PHP เนื่องจากตัวแปรเป็นแบบ Typeless ดังนั้นค่าของตัวแปรอาจจะมีความหมายเท่ากันในบางบริบท เช่น ค่าของ True นั้นอาจจะเท่ากับ 1 และค่าของ False อาจจะเท่ากับ 0
ตัวดำเนินการตรรกศาสตร์ (Logical operators)
เครื่องหมายที่ใช้เชื่อมเงื่อนไข 2 เงื่อนไข หรือมากกว่า 2 เงื่อนไข เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น ใช้สัญลักษณ์แทนในแต่ละเครื่องหมาย ดังนี้
ตัวดำเนินการเงื่อนไข
จะนำไปใช้ในการทดสอบค่านิพจน์ทางตรรกะว่า จริงหรือเท็จ ดังนี้
รูปแบบ expression1 ? expression2 : expression3
โดยที่
expression 1 หมายถึง นิพจน์เงื่อนไข
expression 2 หมายถึง นิพจน์กรณีเป็นจริง
expression 3 หมายถึง นิพจน์กรณีเป็นเท็จ
<?php
$x = 5;
$y = 10;
$result = ($x < $y) ? 0 : 100 ;
?>