Operators ใน PHP: Arithmetic, Comparison, Logical
ในบทที่แล้ว เราได้เรียนรู้เกี่ยวกับชนิดข้อมูลพื้นฐานใน PHP กันไปแล้ว ในบทนี้ เราจะมาทำความรู้จักกับ Operators ซึ่งเป็นเครื่องมือสำคัญที่ใช้ในการจัดการและเปรียบเทียบข้อมูลต่างๆ ใน PHP Operators เปรียบเสมือนสัญลักษณ์ที่บอกให้ PHP รู้ว่าเราต้องการให้มันทำอะไรกับข้อมูลของเรา
Arithmetic Operators (ตัวดำเนินการทางคณิตศาสตร์)
Arithmetic Operators เป็น Operators ที่ใช้ในการคำนวณทางคณิตศาสตร์พื้นฐาน เช่น การบวก ลบ คูณ หาร ยกกำลัง และหารเอาเศษ
+(Addition): บวกค่า-(Subtraction): ลบค่า*(Multiplication): คูณค่า/(Division): หารค่า%(Modulo): หารเอาเศษ**(Exponentiation): ยกกำลัง (ใช้ได้ตั้งแต่ PHP 5.6)
ตัวอย่างการใช้งาน:
<?php
$x = 10;
$y = 5;
echo "ผลบวก: " . ($x + $y) . "<br>"; // Output: ผลบวก: 15
echo "ผลลบ: " . ($x - $y) . "<br>"; // Output: ผลลบ: 5
echo "ผลคูณ: " . ($x * $y) . "<br>"; // Output: ผลคูณ: 50
echo "ผลหาร: " . ($x / $y) . "<br>"; // Output: ผลหาร: 2
echo "เศษจากการหาร: " . ($x % $y) . "<br>"; // Output: เศษจากการหาร: 0
echo "10 ยกกำลัง 2: " . (10 ** 2) . "<br>"; // Output: 10 ยกกำลัง 2: 100
?>
ในตัวอย่างข้างต้น เราใช้ Arithmetic Operators เพื่อทำการคำนวณค่าต่างๆ และแสดงผลลัพธ์ออกมา โดยการใช้เครื่องหมาย . (dot) เพื่อเชื่อมต่อข้อความและค่าตัวแปรเข้าด้วยกัน
Comparison Operators (ตัวดำเนินการเปรียบเทียบ)
Comparison Operators ใช้ในการเปรียบเทียบค่าสองค่า ผลลัพธ์ที่ได้จากการเปรียบเทียบจะเป็นค่า Boolean (true หรือ false)
==(Equal): เท่ากัน (ตรวจสอบเฉพาะค่า ไม่สนใจชนิดข้อมูล)===(Identical): เหมือนกันทุกประการ (ตรวจสอบทั้งค่าและชนิดข้อมูล)!=(Not equal): ไม่เท่ากัน (ตรวจสอบเฉพาะค่า)!==(Not identical): ไม่เหมือนกัน (ตรวจสอบทั้งค่าและชนิดข้อมูล)>(Greater than): มากกว่า<(Less than): น้อยกว่า>=(Greater than or equal to): มากกว่าหรือเท่ากับ<=(Less than or equal to): น้อยกว่าหรือเท่ากับ
ตัวอย่างการใช้งาน:
<?php
$x = 10;
$y = "10";
var_dump($x == $y); // Output: bool(true) (ค่าเท่ากัน)
var_dump($x === $y); // Output: bool(false) (ชนิดข้อมูลไม่เหมือนกัน)
var_dump($x != $y); // Output: bool(false) (ค่าเท่ากัน)
var_dump($x !== $y); // Output: bool(true) (ชนิดข้อมูลไม่เหมือนกัน)
var_dump($x > 5); // Output: bool(true) (10 มากกว่า 5)
var_dump($x < 12); // Output: bool(true) (10 น้อยกว่า 12)
var_dump($x >= 10); // Output: bool(true) (10 มากกว่าหรือเท่ากับ 10)
var_dump($x <= 8); // Output: bool(false) (10 น้อยกว่าหรือเท่ากับ 8)
?>
จากตัวอย่าง จะเห็นว่า == จะตรวจสอบเฉพาะค่าของตัวแปรเท่านั้น ในขณะที่ === จะตรวจสอบทั้งค่าและชนิดข้อมูล ดังนั้น 10 == "10" จะให้ผลลัพธ์เป็น true แต่ 10 === "10" จะให้ผลลัพธ์เป็น false
Logical Operators (ตัวดำเนินการทางตรรกศาสตร์)
Logical Operators ใช้ในการรวมหรือเปลี่ยนแปลงค่า Boolean เพื่อสร้างเงื่อนไขที่ซับซ้อนยิ่งขึ้น
&&(And): และ (ทั้งสองเงื่อนไขต้องเป็นtrueจึงจะได้true)||(Or): หรือ (เงื่อนไขใดเงื่อนไขหนึ่งเป็นtrueก็จะได้true)!(Not): ไม่ (เปลี่ยนค่าtrueเป็นfalseและfalseเป็นtrue)and(And): และ (เหมือน&&แต่มี precedence ต่ำกว่า)or(Or): หรือ (เหมือน||แต่มี precedence ต่ำกว่า)xor(Xor): Exclusive or (เป็นtrueถ้ามีเงื่อนไขเดียวที่เป็นtrue)
ตัวอย่างการใช้งาน:
<?php
$x = 5;
$y = 10;
if ($x > 0 && $y < 20) {
echo "ทั้ง x มากกว่า 0 และ y น้อยกว่า 20<br>"; // Output: ทั้ง x มากกว่า 0 และ y น้อยกว่า 20
}
if ($x > 10 || $y > 5) {
echo "อย่างน้อย x มากกว่า 10 หรือ y มากกว่า 5<br>"; // Output: อย่างน้อย x มากกว่า 10 หรือ y มากกว่า 5
}
if (!($x == 10)) {
echo "x ไม่เท่ากับ 10<br>"; // Output: x ไม่เท่ากับ 10
}
if ($x > 0 and $y < 20) {
echo "ทั้ง x มากกว่า 0 และ y น้อยกว่า 20 (ใช้ 'and')<br>"; // Output: ทั้ง x มากกว่า 0 และ y น้อยกว่า 20 (ใช้ 'and')
}
if ($x > 10 or $y > 5) {
echo "อย่างน้อย x มากกว่า 10 หรือ y มากกว่า 5 (ใช้ 'or')<br>"; // Output: อย่างน้อย x มากกว่า 10 หรือ y มากกว่า 5 (ใช้ 'or')
}
if ($x > 0 xor $y > 15) {
echo "x มากกว่า 0 หรือ y มากกว่า 15 อย่างใดอย่างหนึ่งเท่านั้น<br>"; // Output: x มากกว่า 0 หรือ y มากกว่า 15 อย่างใดอย่างหนึ่งเท่านั้น
}
?>
Logical Operators มักถูกใช้ร่วมกับ if statements และ loops เพื่อควบคุมการทำงานของโปรแกรมตามเงื่อนไขต่างๆ
Precedence of Operators (ลำดับความสำคัญของ Operators)
Operators แต่ละชนิดมีลำดับความสำคัญ (precedence) ที่แตกต่างกัน เมื่อมีการใช้ Operators หลายตัวใน expression เดียว PHP จะทำการคำนวณตามลำดับความสำคัญของ Operators
ตัวอย่างเช่น:
<?php
$result = 10 + 5 * 2;
echo $result; // Output: 20 (การคูณทำก่อนการบวก)
$result = (10 + 5) * 2;
echo $result; // Output: 30 (วงเล็บทำให้การบวกทำก่อน)
?>
ในตัวอย่างแรก การคูณ (*) มีลำดับความสำคัญสูงกว่าการบวก (+) ดังนั้น PHP จะทำการคูณ 5 * 2 ก่อน แล้วจึงนำผลลัพธ์ไปบวกกับ 10 ในตัวอย่างที่สอง เราใช้วงเล็บ () เพื่อบังคับให้ PHP ทำการบวกก่อน แล้วจึงนำผลลัพธ์ไปคูณ
การเข้าใจลำดับความสำคัญของ Operators เป็นสิ่งสำคัญเพื่อให้เราสามารถเขียนโค้ดที่ทำงานได้อย่างถูกต้องตามที่เราต้องการ
สรุป
ในบทนี้ เราได้เรียนรู้เกี่ยวกับ Operators ต่างๆ ใน PHP ซึ่งเป็นเครื่องมือสำคัญในการจัดการและเปรียบเทียบข้อมูล Operators ช่วยให้เราสามารถทำการคำนวณทางคณิตศาสตร์ เปรียบเทียบค่า และสร้างเงื่อนไขที่ซับซ้อนเพื่อควบคุมการทำงานของโปรแกรม ในบทถัดไป เราจะมาเรียนรู้เกี่ยวกับ Control Structures ซึ่งเป็นเครื่องมือที่ใช้ในการควบคุมการไหลของโปรแกรมตามเงื่อนไขต่างๆ