CHAPTER 2 Operators
Agenda Operator & Operand Arithmetic Operators String Operator Pre-Incremental,Post-Incremental, Pre-Decremental,Post-Decremental Operators Comparison Operators Logical Operators
Operator & Operand Operator คือเครื่องหมายที่ใช้สำหรับการคำนวณ หรือเปรียบเทียบ หรืออื่นๆ Operand คือ ค่าที่ใช้สำหรับคำนวณหรือเปรียบเทียบ หรืออื่นๆ โดย Operand อาจเป็นตัวเลข ตัวอักษร ค่าคงที่ หรือ ตัวแปร ตัวอย่าง X + Y * 2 Operator ได้แก่ + และ * Operand ได้แก่ X Y และ 2
Arithmetic Operators เครื่องหมายคำนวณทางคณิตศาสตร์ กำหนดให้ $a=10 และ $b=3 เครื่องหมาย ชื่อ ความหมาย ตัวอย่าง ผลลัพธ์ ($c) + Addition บวก $c=$a+$b 13 - Subtraction ลบ $c=$a-$b 7 * Multiplication คูณ $c=$a*$b 30 / Division หาร $c=$a/$b 3.33333333333 % Modulus หารเก็บเศษ $c=$a%$b 1 เครื่องหมายบวกและลบ ที่เป็น Unary Operator เช่น $e=-5
String Operator เครื่องหมายจุด (.) ใช้สำหรับต่อข้อความที่อยู่ด้านซ้ายและขวา ของจุด string_left . string_right เช่น $a=‘Chiang Mai ’; $b=‘University’; $c=$a.$c; echo “Hello”.$a;
Assignment Operators เครื่องหมายเท่ากับ(=) สำหรับกำหนดค่าให้ตัวแปร นำค่าด้านขวามาเก็บไว้ที่ตัวแปรด้านซ้าย var_name = value เช่น $a=10; $b=$a+3;
Combination Assignment Operators เครื่องหมาย ตัวอย่าง ความหมายเท่ากับ ผลลัพธ์ ($a) += $a+=4 $a = $a+4 14 -= $a-=4 $a = $a-4 6 *= $a*=4 $a = $a*4 40 /= $a/=4 $a = $a/4 2.5 %= $a%=4 $a = $a%4 2 .= $a.=4 $a = $a.4 104
Pre-Incremental,Post-Incremental, Pre-Decremental,Post-Decremental Operators กำหนดให้ $a=10 เครื่องหมาย ชื่อ ตัวอย่าง ผลลัพธ์ ($a) ความหมาย ++ Pre-Incremental ++$a $a = $a+1 11 Post-Incremental $a++ - - Pre-Decremental - -$a $a = $a-1 9 Post-Decremental $a- -
ตัวอย่าง $b++ เอาค่า $b ไปใช้ก่อน แล้วจึงเพิ่มค่า $b $b = 5; $a = 10 + $b++ * 2; ผลลัพธ์ที่ได้ จะมีผลเท่ากับคําสั่ง $a = 10 + $b * 2; $b = $b + 1; จะได้ว่า $a มีค่าเท่ากับ 10 + 5 * 2 = 20 และ $b มีค่าเท่ากับ 6 $b++ เอาค่า $b ไปใช้ก่อน แล้วจึงเพิ่มค่า $b
ตัวอย่าง ++b เพิ่มค่า b ก่อน แล้วจึงเอาค่า b ไปใช้ $b = 5; $a = 10 + ++$b * 2; ผลลัพธ์ที่ได้จะมีผลเท่ากับคําสั่ง $b = $b + 1; $a = 10 + $b * 2; จะได้ $b มีค่าเท่ากับ 6 และ $a มีค่าเท่ากับ 10 + 6 * 2 = 22 ++b เพิ่มค่า b ก่อน แล้วจึงเอาค่า b ไปใช้
Comparison Operators สำหรับเปรียบเทียบค่า 2 ค่าใดๆ แล้วส่งคืนค่าที่เป็นจริง(true) หรือเท็จ(false) กำหนดให้ $a=10; $a=(integer)$a; $b=10; $b=(integer)$b; $c=10; $c=(double)$c; $d=20; $d=(integer)$d;
Comparison Operators เครื่องหมาย ชื่อ ความหมาย ตัวอย่าง ผลลัพธ์ == Equal เท่ากับ $a==$b $a==$c $a==$d True False === Identical เหมือนกัน $a===$b $a===$c $a===$d != Not equal ไม่เท่ากับ $a!=$c $a!=$d <> $a<>$c $a<>$d
Greater than or equal to Comparison Operators เครื่องหมาย ชื่อ ความหมาย ตัวอย่าง ผลลัพธ์ < Less than น้อยกว่า $a<$c $a<$d False True > Greater than มากกว่า $a>$c $a>$d <= Less than or equal to น้อยกว่าหรือเท่ากับ $a<=$c $a<=$d >= Greater than or equal to มากกว่าหรือเท่ากับ $a>=$c $a>=$d
Logical Operators กำหนดให้ $a=true; $b=false; เครื่องหมาย ชื่อ ความหมาย ตัวอย่าง ผลลัพธ์ ! Not คืนค่า True ถ้าตัวแปรเป็น False คืนค่า False ถ้าตัวแปรเป็น True !$a False && And คืนค่า True ถ้าเป็นจริงทั้ง 2 ค่า กรณีอื่นๆ คืนค่า False $a && $b and คืนค่า True ถ้าเป็น True ทั้ง 2 ค่า $a and $b True || Or คืนค่า Falseถ้าเป็นFalseทั้ง 2 ค่า กรณีอื่นๆ คืนค่า True $a || $b or $a or $b
ลำดับความสำคัญของตัวดำเนินการทางคณิตศาสตร์ การเขียนนิพจน์คณิตศาสตร์ทางคอมพิวเตอร์จะ แตกต่างกับนิพจน์คณิตศาสตร์ที่เคยเรียนทั่วไป ตรงที่มีลําดับความสำคัญ(Priority) ของตัวดำเนินการ เข้ามาเกี่ยวข้อง มาก ( ) Parenthesis +, - Unary Plus, Unary Minus *, /, % Multiplication, Division, Modulus +, - Addition, Subtraction ตัวดําเนินการที่อยู่ด้านบนจะมีความสําคัญกว่าด้านล่าง น้อย
ตัวอย่าง 3 + 4 / 2 ; จะได้ผลลัพธ์เท่ากับ 3 + (4 / 2) = 5 3 * 2 + 4 % 2; จะได้ผลลัพธ์เท่ากับ (3*2) + (4%2) = 6 + 0 = 6 3 + 2 * 4 % 2 จะได้ผลลัพธ์เท่ากับ 3 + ( (2*4) %2 ) = 3 + (8 %2) = 3 + 0 = 3
ตัวอย่าง แต่หากต้องการให้ทําตัวดําเนินการในลําดับตํ่าก่อน ให้ใช้เครื่องหมาย ( ) ครอบคําสั่งที่ต้องการ เช่น 3 * (2 + 4 )% 2 จะได้ผลลัพธ์เท่ากับ 3 * 6 % 2 = 18 % 2 = 0
$a = (($d / $b) * $c) + (15 * $b) $a = $c + 5 % 3 * $b - $d / 2 แบบฝึกหัด ให้ $b=2 $c=100 $d=30 $a = $b * $c - $d $a = $b * ($c - $d) $a = $d / $b * $c + 15 * $b $a = (($d / $b) * $c) + (15 * $b) $a = $c + 5 % 3 * $b - $d / 2 $a = ($c + 5) % 3 * ($b - $d) / 2