ตัวดำเนินการ (PHP Operators)

ตัวดำเนินการใช้เพื่อดำเนินการกับตัวแปรและค่าของข้อมูล

โดย PHP แบ่งตัวดำเนินการออกเป็น

1.ตัวดำเนินการทางคณิตศาสตร์
2.ตัวดำเนินการมอบหมาย / กำหนด
3.ตัวดำเนินการเปรียบเทียบ
4.ตัวดำเนินการเพิ่ม / ลด
5.ตัวดำเนินการทางตรรกะ
6.ตัวดำเนินการสตริง
7.ตัวดำเนินการกำหนดเงื่อนไข

 

1.ตัวดำเนินการทางคณิตศาสตร์

ใช้ในการดำเนินการกับค่าตัวเลข เช่นการบวก ลบ คูณ หาร เป็นต้น 

ตัวดำเนินการ ความหมาย ตัวอย่าง
+ การบวกเพิ่ม $x + $y
การลบ $x – $y
* การคูณ $x * $y
/ การหาร $x / $y
% การหารเอาเศษ $x % $y
** การยกกำลัง $x ** $y

 

2.ตัวดำเนินการมอบหมาย / กำหนด

เป็นตัวดำเนินการเกี่ยวกับค่าตัวเลข เพื่อแทนค่าให้กับตัวแปร 

ตัวดำเนินการมอบหมายพื้นฐานคือ “=” ซึ่งมีไว้เพื่อกำหนดและแทนค่า โดยตัวแปรฝั่งซ้ายจะเป็นตัวแปรที่รับค่าจากฝั่งขวา

การกำหนด ตัวอย่าง คำอธิบาย
x = y x = y จากตัวอย่าง หมายถึง ตัวแปร x ที่อยู่ฝั่งซ้ายจะมีค่าเท่ากับค่า หรือตัวแปรที่อยู่ฝั่งขวา ซึ่งในตัวอย่างคือ y
x += y x = x + y

แทนค่าสมมติ : x = 10 , y = 5

จากตัวอย่าง หมายถึง การบวกเพิ่มให้กับตัวแปร x โดยที่ x = x + y

จากโจทย์ ผลลัพธ์ที่ได้คือ x มีค่าเท่ากับ 15   

x -= y x = x – y

แทนค่าสมมติ : x = 10 , y = 5

จากตัวอย่าง หมายถึง การลดค่าของตัวแปร x โดยที่ x = x – y

จากโจทย์ ผลลัพธ์ที่ได้คือ x มีค่าเท่ากับ 5   

x *= y x = x * y

แทนค่าสมมติ : x = 10 , y = 5

จากตัวอย่าง หมายถึง การคูณค่าของตัวแปร x กับตัวแปร y แล้วคืนค่าไปที่ตัวแปร x

โดยที่ x = x * y

จากโจทย์ ผลลัพธ์ที่ได้คือ x มีค่าเท่ากับ 50 

x /= y x = x / y

แทนค่าสมมติ : x = 10 , y = 5

จากตัวอย่าง หมายถึง การหารค่าของตัวแปร x กับตัวแปร y แล้วคืนค่าไปที่ตัวแปร x

โดยที่ x = x * y

จากโจทย์ ผลลัพธ์ที่ได้คือ x มีค่าเท่ากับ 2

x %= y x = x % y

แทนค่าสมมติ : x = 10 , y = 5

จากตัวอย่าง หมายถึง การหารเอาเศษของตัวแปร x กับตัวแปร y แล้วคืนค่าไปที่ตัวแปร x

โดยที่ x = x % y

จากโจทย์ ผลลัพธ์ที่ได้คือ x มีค่าเท่ากับ 0 

หมายเหตุ : การหารเอาเศษสามารถมีค่าได้เพียงสองอย่าง คือ 0 กับ 1 เท่านั้น 

  • 0 ได้จากผลลัพธ์ของการหารที่ลงตัว
  • 1 ได้จากผลลัพธ์การหารที่มีไม่ลงตัว (มีเศษ)

 

3.ตัวดำเนินการเปรียบเทียบ

เป็นตัวดำเนินการเพื่อเปรียบเทียบได้ทั้งค่าของตัวเลข และสตริง

ตัวดำเนินการ ชื่อ ตัวอย่าง ผลลัพธ์
== Equal $x == $y

แทนค่าสมมติ : $x = 5 , $y = 10

จากตัวอย่าง ถ้า $x มีค่าเท่ากับ $y จริง จะคืนค่าเป็น จริง แต่ถ้าไม่จริง จะมีค่าเป็นเท็จ

ดังนั้น ผลลัพธ์ที่ได้ คือ เท็จ เนื่องจาก $x มีค่าน้อยกว่า $y

 === Identical $x === $y

แทนค่าสมมติ : $x = 10 , $y = “10”

จากตัวอย่าง $x และ $y จะต้องมีค่าเท่ากันทั้งค่าของข้อมูล และประเภทตัวแปร ถึงจะเป็นจริง

เนื่องจากตัวแปร $x มีค่าข้อมูลเป็น 10 และเป็นข้อมูลประเภทตัวเลขจำนวนเต็ม (integer) ส่วน $y มีค่าข้อมูลเป็น 10 เท่ากันกับตัวแปร $x แต่ตัวแปร $y เป็นข้อมูลประเภทสตริง (string)  

ดังนั้น ผลลัพธ์ที่ได้คือ เท็จ 

!= Not equal $x != $y

แทนค่าสมมติ : $x = 10 , $y = 20

จากตัวอย่าง ถ้าตัวแปร $x กับ ตัวแปร $y มีค่าไม่เท่ากัน จะคืนค่าเป็น จริง

โดยที่ $x != $y

จากโจทย์ เนื่องจาก $x มีค่าเท่ากับ 10 และ $y มีค่าเท่ากับ 20 ซึ่ง $x กับ $y มีค่าไม่เท่ากัน 

ดังนั้น ผลลัพธ์ที่ได้คือ จริง

<> Not equal $x <> $y ความหมายเหมือนกันกับ $x != $y จากข้อที่ผ่านมา
!== Not identical $x !== $y

แทนค่าสมมติ : $x = 10 , $y = “10”

จากตัวอย่าง ถ้าตัวแปร $x และ $y มีค่าข้อมูลไม่เหมือนกัน หรือประเภทข้อมูลต่างกันอย่างใดอย่างหนึ่ง จะคืนค่าเป็นจริง

โดยที่ $x !== $y

จากโจทย์ ตัวแปร $x มีค่าข้อมูลเป็น 10 และเป็นข้อมูลประเภทตัวเลขจำนวนเต็ม (integer) ส่วน $y มีค่าข้อมูลเป็น 10 เท่ากันกับตัวแปร $x แต่ตัวแปร $y เป็นข้อมูลประเภทสตริง (string)  

ดังนั้น ผลลัพธ์ที่ได้คือ จริง เนื่องจากประเภทของตัวแปรต่างกัน 

> Greater than $x > $y

แทนค่าสมมติ : $x = 10 , $y = 5

จากตัวอย่าง ถ้า $x มากกว่า $y จะคืนค่าเป็นจริง

ปัจจุบันตัวแปร $x มีค่าเท่ากับ 10 ส่วน $y มีค่าเท่ากับ 5 

ดังนั้น ผลลัพธ์ที่ได้คือ จริง เนื่องจาก $x มีค่าเท่ากับ 10 ซึ่งมากกว่า $y ที่มีค่าเท่ากับ 5

< Less than $x < $y

แทนค่าสมมติ : $x = 10 , $y = 5

จากตัวอย่าง ถ้า $x น้อยกว่า $y จะคืนค่าเป็นจริง

ผลลัพธ์ที่ได้คือ เท็จ เนื่องจาก $x มีค่าเท่ากับ 10 ซึ่งมากกว่า $y ที่มีค่าเท่ากับ 5

>= Greater than or equal to $x >= $y

แทนค่าสมมติ : $x = 10 , $y = 10

จากตัวอย่าง ถ้า $x มากกว่าหรือเท่ากับ $y จะคืนค่าเป็นจริง

ดังนั้น ผลลัพธ์ที่ได้คือ จริง เนื่องจาก $x มีค่าเท่ากับ 10 ซึ่งมีค่าเท่ากันกับตัวแปร $y 

<= Less than or equal to $x <= $y

แทนค่าสมมติ : $x = 10 , $y = 5

จากตัวอย่าง ถ้า $x น้อยกว่าหรือเท่ากับ $y จะคืนค่าเป็นจริง

ดังนั้น ผลลัพธ์ที่ได้คือ เท็จ เนื่องจาก $x มีค่าเท่ากับ 10 ซึ่งมากกว่า $y ที่มีค่าเท่ากับ 5  

<=> Spaceship $x <=> $y

จากตัวอย่าง เป็นค่าเปรียบเทียบน้อยกว่า หรือเท่ากับมากกว่า 

ถ้า

  • น้อยกว่า จะคืนค่าเป็น -1
  • เท่ากัน จะคืนค่าเป็น 0
  • มากกว่า จะคืนค่าเป็น 1

ดังโค้ดไฟล์ที่ 1 spaceship.php

<?php
$x = 5;  
$y = 10;

echo ($x <=> $y); // returns -1 เนื่องจาก $x น้อยกว่า $y
echo "<br>";

$x = 10;  
$y = 10;

echo ($x <=> $y); // returns 0 เนื่องจากมีค่าเท่ากัน
echo "<br>";

$x = 15;  
$y = 10;

echo ($x <=> $y); // returns +1 เนื่องจาก $x มีค่ามากกว่า $y
?>  

ไฟล์ที่ 1 spaceship.php

 

4.ตัวดำเนินการเพิ่ม/ลด 

เป็นตัวดำเนินการที่ใช้ในการเพิ่มลดค่าของตัวแปร

ตัวดำเนินการ ชื่อ คำอธิบาย
++$x Pre-increment

แทนค่าสมมติ : $x = 10

บวกเพิ่มค่าตัวแปร $x ทีละ 1 แล้วคืนค่าไปที่ตัวแปร $x (บวกก่อนส่งคืนค่า)

ผลลัพธ์ $x มีค่าเป็น 11   ดังตัวอย่าง

<?php 
$x = 10;

echo ++$x; // 11
echo ++$x; // 12
echo ++$x; // 13

?>
$x++ Post-increment

แทนค่าสมมติ : $x = 10

คืนค่าไปที่ตัวแปร $x แล้วค่อยๆบวกเพิ่มทีละ 1 (ส่งคืนค่าก่อนบวก)

ผลลัพธ์ $x มีค่าเป็น 10 ดังตัวอย่างโค้ด

<?php 
$x = 10;

echo $x++; // 10
echo $x++; // 11
echo $x++; // 12

?>
–$x Pre-decrement

แทนค่าสมมติ : $x = 10

ลบค่าตัวแปร $x ทีละ 1 แล้วคืนค่าไปที่ตัวแปร $x (ลบค่าก่อนส่งคืนค่า)

ผลลัพธ์ $x มีค่าเป็น 9   

ตัวอย่าง

<?php 
$x = 10;

echo --$x; // 9
echo --$x; // 8
echo --$x; // 7

?>
$x– Post-decrement

แทนค่าสมมติ : $x = 10

คืนค่าเริ่มต้น ก่อนลดลงทีละ 1 ค่า (คืนค่าก่อนลดลงทีละ 1)

ผลลัพธ์ $x มีค่าเป็น 10   

ตัวอย่าง

<?php 
$x = 10;

echo $x--; // 10
echo $x--; // 9
echo $x--; // 8

?>

 

5.ตัวดำเนินการตรรกะ 

เป็นตัวดำเนินการที่ใช้ในการรวมเงื่อนไข

ตัวดำเนินการ ชื่อ ตัวอย่าง ผลลัพธ์
and And $x and $y

แทนค่าสมมติ : $x = 10 , $y = 20

จากตัวอย่างจะเป็นจริงเมื่อเงื่อนไข $x และ $y เป็นจริง

ดังโค้ดต่อไปนี้

<?php 
$x = 10; 
$y = 20; 
if($x==10 and $y==20){ 
echo "True"; 
} 
?>

จากโค้ด ผลลัพธ์คือ True เนื่องจากเงื่อนไขของ $x และ $y เป็นจริง

or Or $x or $y

แทนค่าสมมติ : $x = 10 , $y = 20

จากตัวอย่างจะเป็นจริงเมื่อเงื่อนไข $x หรือ $y เป็นจริง

ดังโค้ดต่อไปนี้

<?php 
$x = 10; 
$y = 20; 
if($x==10 or $y==15){ 
echo "True"; 
} 
?>

จากโค้ด ผลลัพธ์คือ True เนื่องจากมีบางเงื่อนไขของ $x และ $y เป็นจริง

xor Xor $x xor $y

แทนค่าสมมติ : $x = 10 , $y = 20;

จากตัวอย่าง เงื่อนไขจะเป็นจริงก็ต่อเมื่อตัวแปร $x หรือ $y เป็นจริง เพียงตัวแปรเดียวเท่านั้น หากเป็นจริงทั้งสองตัวแปร จะกลายเป็น เท็จ

ดังโค้ดต่อไปนี้

<?php
$x = 10;
$y = 20;

if($x==10 xor $y==30){
echo "True";
}
?>

ผลลัพธ์ เป็นจริง

 

&& And $x && $y เหมือนกันกับ $x and $y
|| Or $x || $y เหมือนกันกับ $x or $y
! Not !$x

เป็นจริงเมื่อ ไม่เท่ากับ $x 

ดังโค้ดต่อไปนี้

<?php
$x = 100;  

if ($x != 90) {
    echo "จริง";
}
?>  

จากโค้ด เป็นจริงเนื่องจากเงื่อนไขภายในโค้ดกำหนดว่า ถ้า $x ไม่เท่ากับ 90 จะเป็นจริง 

ดังนั้น ผลลัพธ์จึงเป็น จริง เพราะ $x มีค่าเท่ากับ 100

 

6.ตัวดำเนินการสตริง

ตัวดำเนินการ ชื่อเรียก ตัวอย่าง ผลลัพธ์
. Concatenation $txt1 . $txt2

เป็นการต่อสตริงของตัวแปร คล้ายการนำคำมาเรียงต่อกัน

ตัวอย่างโค้ด

<?php
$txt1 = "สวัสดี";
$txt2 = " ครับ";

echo $txt1.$txt2;
?>  

ผลลัพธ์ที่ได้คือ สวัสดี ครับ

.= Concatenation assignment $txt1 .= $txt2

ค้ลายกับตัวอย่างด้านบนที่มีการนำคำมาต่อท้าย แต่ความแตกต่างคือ ต่อท้ายแล้วคืนค่าไปที่ตัวแปรที่อยู่ด้านซ้าย

ดังโค้ดต่อไปนี้

<?php
$txt1 = "สวัสดี";
$txt2 = " ครับ";
$txt1 .= $txt2;

echo $txt1;
?>  

ผลลัพธ์ที่ได้คือ สวัสดี ครับ ซึ่งผลลัพธ์ที่ได้เหมือนกันกับ $txt1.$txt2 ต่างกันตรงที่วิธีเรียกแสดงผล เพราะว่า ตัวอย่างปัจจุบันเรียกแสดงผลเพียงตัวแปร $txt1 เท่านั้น 

 

7ิ.ตัวดำเนินการกำหนดเงื่อนไข

เป็นตัวดำเนินการที่ใช้เพื่อกำหนดค่า ขึ้นอยู่กับเงื่อนไขที่เรากำหนด

Operator Name Example Result
?: Ternary $x = expr1 ? expr2 : expr3

จากตัวอย่าง สามารถอธิบายได้ว่า 

  • ตัวแปร $x คือ expr2 ถ้า expr1 เป็น จริง
  • ตัวแปร $x คือ expr3 ถ้า expr1 เป็น เท็จ

ดังตัวอย่างโค้ดด้านล่าง

<?php
    $status = 0;
   
   echo $status = $status==0 ? "anonymous" : "logged in";
   echo("<br>");

   echo $status = $statsu==1 ? "anonymous" : "logged in";
?>  

 

?? Null coalescing $x = expr1 ?? expr2

จากตัวอย่าง ในที่นี้สามารถอธิบายได้ว่า 

  1. ตัวแปร $x คือ  expr1 ถ้า expr1 มีค่าอะไรอยู่ก่อนแล้ว และไม่ใช่ค่าว่าง
  2. ตัวแปร $x คือ expr2 ถ้า expr1 ไม่่มีค่า หรือเป็นค่าว่าง

ดังตัวอย่างโค้ดต่อไปนี้

<?php
   // variable $color is "red" if $color does not exist or is null
   $color = "brown";
   $colors = $color ?? "red";
   
   echo $colors;
?>  

จากโค้ด ผลลัพธ์ที่ได้คือ brown เนื่องจากเข้าเงื่อนไขที่ 1 คือ ตัวแปร $color มีค่าอยู่แล้ว และไม่ใช่ค่าว่าง