โปรแกรม php https://onecompiler.com/php
1. ความหมายของตัวดำเนินการและประเภทของตัวดำเนินการ
2. ตัวดำเนินการทางคณิตศาสตร์
3. ตัวดำเนินการเปรียบเทียบ
4. ตัวดำเนินการสตริง
5.ความหมายของนิพจน์และลำดับการประมวลผลของนิพจน์
ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา PHP เราจะให้คุณรู้จักตัวดำเนินการแต่ละประเภทและวิธีการใช้งานกับการเขียนโปรแกรมในรูปแบบต่างๆ
ตัวดำเนินการ คือเครื่องหมายหรือสัญลักษณ์ที่กำหนดขึ้นสำหรับใช้ในการจัดการกับตัวแปรและค่าคงที่ หรือสร้าง Expression ขึ้นและนำไปใช้งานในการเขียนโปรแกรม ตัวดำเนินการในภาษา PHP มีหลายรูปแบบซึ่งในบทนี้ เนื้อหาได้แบ่งย่อยออกเป็นดังนี้
ตัวดำเนินการกำหนดค่า(Assignment operator)
ตัวดำเนินการเลขคณิต(Arithmetic operators)
ตัวดำเนินการเปรียบเทียบ(Comparison Operators)
ตัวดำเนินการระดับบิต (Bitwise operators)
ตัวดำเนินการเพิ่ม/ลดค่า(Compound assignment)
ตัวดำเนินการลอจิก(Logical operators)
ตัวดำเนินการสตริง(String Concatenation Operator)
ตัวดำเนินการกำหนดค่า (Assignment operator)
ตัวดำเนินการกำหนดค่า (Assignment operator) คือตัวดำเนินการที่ใช้สำหรับกำหนดค่าให้กับตัวแปรหรือค่าคงที่ เครื่องหมายเท่ากับ = ใช้เป็นสัญลักษณ์ของตัวดำเนินการนี้ การทำงานของตัวดำเนินการนั้นจะนำค่าจากด้านขวามาใส่ตัวแปรทางด้านซ้าย
$x = 1;
$y = $x + 5;
$text = "PHP language";
ในตัวอย่างเป็นการใช้งานตัวดำเนินการกำหนดค่าในการกำหนดค่าให้กับตัวแปรในภาษา PHP เราได้กำหนดค่า 1 ให้กับตัวแปร $x เรากำหนดค่าให้กับตัวแปร $y ในรูปแบบของ Expression และกำหนด String ให้กับตัวแปร $textนี่เป็นการดำเนินการที่พื้นฐานที่สุดในการเขียนโปรแกรม
ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic operators)
ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic operators) เป็นตัวดำเนินการในการหาผลลัพธ์จากการกระทำทางคณิตศาสตร์ เช่น การบวก การลบ การคูณ และหารหาร โดยมีตัวเลขเป็น Operand และจะได้ผลลัพธ์สุดท้ายออกมาค่าเดียวนี่เป็นตารางตัวดำเนินการทางคณิตศาสต์ในภาษา PHP
Symbol Name Example
+ Addition $c = $a + $b
- Subtraction $c = $a - $b
* Multiplication $c = $a * $b
/ Division $c = $a / $b
% Modulo $c = $a % $b
<?php
$price = 150;
$tax_rate = 10;
$tax_price = $price * ($tax_rate / 100);
$total_price = $price + $tax_price;
echo "Item with price $price\n";
echo "Tax rate $tax_rate%\n";
echo "Price increased by tax $tax_price\n";
echo "Total price = $total_price\n";
?>
ตัวดำเนินการระดับบิต (Bitwise operators) คือตัวดำเนินการที่มีการกระทำกันในระดับบิตของข้อมูลซึ่งมีแค่ 1 และ 0 นี่เป็นโครงสร้างของภาษาที่ถ่ายทดมาจากภาษา C ในการทำงานของตัวดำเนินการระดับบิตเป็นการนำคู่ของบิตมากระทำต่อกันในทางตรรกศาสตร์และได้ผลลัพธ์เป็นบิตใหม่ ส่วนมากแล้วมันมักจะใช้กับการเขียนโปรแกรมในระดับต่ำนี่เป็นตารางตัวตัวดำเนินการระดับบิตในภาษา PHP
Symbol Name Example
& And $c = $a & $b
| Or $c = $a | $b
^ Xor $c = $a ^ $b
~ Not $c = ~$b
<< Shift left $c = $a << $b
>> Shift right $c = $a >> $b
<?php
$a = 8;
$b = 3;
echo "a & b = ", $a & $b, "\n";
echo "a | b = ", $a | $b, "\n";
echo "a ^ b = ", $a ^ $b, "\n";
echo "~a = ", ~$a, "\n";
echo "a << 1 = ", $a << 1, "\n";
echo "a >> 1 = ", $a >> 1, "\n";
?>
Compound assignment operators คือตัวดำเนินการที่รวมระหว่างตัวดำเนินการทางคณิตศาสตร์และตัวดำเนินการกำหนดค่า มันใช้สำหรับอัพเดทข้อมูลที่อ้างอิงจากข้อมูลในปัจจุบัน หรือกล่าวอีกนัยหนึ่ง มันเป็นรูปแบบที่สั้นกว่าของตัวดำเนินการทางคณิตศาสตร์นี่เป็นตารางสำหรับ Compound assignment operators ในภาษา PHP
Operator Example Equivalent to
+= $a += 2; $a = $a + 2
-= $a -= 2; $a = $a - 2
*= $a *= 2; $a = $a * 2
/= $a /= 2; $a= $a / 2
%= $a %= 2; $a = $a % 2
>>= $a >>= 2; $a = $a >> 2
<<= $a <<= 2; $a = $a << 2
&= $a & = 2; $a = $a & 2
^= $a ^= 2; $a= $a ^ 2
|= $a |= 2; $a = $a | 2
<?php
$floor = 0;
echo "Building is being constructed.\n";
$floor += 3;
echo "First day finished $floor floors.\n";
$floor += 5;
echo "Second day finished $floor floors.\n";
$floor += 4;
echo "Third day finished $floor floors.\n";
$floor += 2;
echo "Forth day finished $floor floors .\n";
?>
ตัวดำเนินการเปรียบเทียบ (Comparison Operators)
ตัวดำเนินการเปรียบเทียบ (Comparison Operators) คือตัวดำเนินการที่ใช้สำหรับเปรียบเทียบระหว่างค่าสองค่า ผลลัพธ์ของการเปรียบเทียบจะได้เป็น Boolean ที่มีค่าเป็นเพียง True หรือ False เท่านั้น ตัวดำเนินการเปรียบเทียบมักจะใช้สำหรับคำสั่งเลือกเงื่อนไขหรือวนซ้ำ ในการเขียนโปรแกรม เราใช้ตัวดำเนินการเหล่านี้เพื่อสร้างเงือนไขให้โปรแกรมทำงานตามที่ต้องการ
ในภาษา PHP เนื่องจากตัวแปรเป็นแบบ Typeless ดังนั้นค่าของตัวแปรอาจจะมีความหมายเท่ากันในบางบริบท เช่น ค่าของ True นั้นอาจจะเท่ากับ 1 และค่าของ False อาจจะเท่ากับ 0 คุณสามารถดูเพิ่มเติมได้ในเรื่องการเท่ากันของข้อมูล ในบทตัวแปรและประเภทข้อมูลนี่เป็นรายการของตัวดำเนินการเปรียบเทียบในภาษา PHP
Operator Example Result
== $a == $b เป็นจริงถ้า a เท่ากับ b ไม่เช่นนั้นเป็นเท็จ
!=, <> $a != $b เป็นจริงถ้า a ไม่เท่ากับ b ไม่เช่นนั้นเป็นเท็จ
< $a < $b เป็นจริงถ้า a น้อยกว่า b ไม่เช่นนั้นเป็นเท็จ
<= $a <= $b เป็นจริงถ้า a น้อยกว่าหรือเท่ากับ b ไม่เช่นนั้นเป็นเท็จ
> $a > $b เป็นจริงถ้า a มากกว่า b ไม่เช่นนั้นเป็นเท็จ
>= $a >= $b เป็นจริงถ้า a มากกว่าหรือเท่ากับ b ไม่เช่นนั้นเป็นเท็จ
=== $a === $b เป็นจริงถ้าทั้งค่าและประเภทของตัวแปร a เท่ากับ b ไม่เช่นนั้นเป็นเท็จ
!== $a !== $b เป็นจริงถ้าทั้งค่าและประเภทของตัวแปร a ไม่เท่ากับ b ไม่เช่นนั้นเป็นเท็จ
<?php
$a = 5;
$b = 10;
if ($a == $b) {
echo "a is equal to b\n";
} else {
echo "a is not equal to b\n";
}
if ($a < $b) {
echo "a is less than b\n";
} else {
echo "a is not less than b\n";
}
if ($a % 2 == 0) {
echo "a is even number\n";
} else {
echo "a is odd number\n";
}
?>
ในตัวอย่าง เรามีตัวแปรสองตัวคือ $a และ $b และได้กำหนดค่าให้กับตัวแปรเหล่านี้ เราใช้ตัวดำเนินการเปรียบเทียบกับคำสั่งเงื่อนไข If เมื่อเงื่อนไขเป็นจริงคำสั่งในบล็อคของ If จะทำงาน และถ้าไม่เป็นจริงคำสั่งในบล็อคของ Else จะทำงาน
ในคำสั่ง if ($a == $b) เป็นการตรวจสอบถ้าหากตัวแปรมีค่าเท่ากัน เนื่องจากค่าในตัวแปรทั้งสองไม่เท่ากัน โปรแกรมจึงทำงานในบล็อคของ Else ในคำสั่ง if ($a < $b) เป็นการตรวจสอบถ้าหากตัวแปร $a มีค่าน้อยกว่า $b ซึ่งเป็นจริง และในคำสั่งสุดท้าย if ($a % 2 == 0) เป็นการตรวจสอบถ้าหาก $a เป็นเลขคู่จากหารเอาเศษ ซึ่งเป็นเท็จ
ตัวดำเนินการตรรกศาสตร์ (Logical operators)
ตัวดำเนินการตรรกศาสตร์ (Logical operators) คือตัวดำเนินการสำหรับสร้าง Expression จาก Expression ย่อยๆ โดยผลลัพธ์ที่ได้จะเป็น Boolean ที่มีค่า True หรือ False ต่อไปนี้เป็นตัวดำเนินการตรรกศาสตร์ในภาษา PHP
Operator Example Result
and $expr1 and $expr2 เป็นจริงถ้าหาก Expression ทั้งสองเป็นจริง ไม่เช่นนั้นเป็นเท็จ
or $expr1 or $expr2 เป็นจริงถ้าหากอย่างน้อยหนึ่ง Expression เป็นจริง ไม่เช่นนั้นเป็นเท็จ
xor $expr1 xor $expr2 เป็นจริงถ้าหาก Expression ทั้งสองมีค่าที่ต่างกัน ไม่เช่นนั้นเป็นเท็จ
not not $expr1 เป็นจริงถ้าหาก Expression เป็นเท็จ และเป็นเท็จถ้าหาก Expression เป็นจริง
&& $expr1 && $expr2 เป็นจริงถ้าหาก Expression ทั้งสองเป็นจริง ไม่เช่นนั้นเป็นเท็จ(อีกรูปแบบของ and)
|| $expr1 || $expr2 เป็นจริงถ้าหากอย่างน้อยหนึ่ง Expression เป็นจริง ไม่เช่นนั้นเป็นเท็จ (อีกรูปแบบของ or)
! !$expr1 เป็นจริงถ้าหาก Expression เป็นเท็จ และเป็นเท็จถ้าหาก Expression เป็นจริง (อีกรูปแบบของ not)
ในภาษา PHP คุณสามารถใช้ตัวดำเนินการตรรกศาสตร์รูปแบบใดก็ได้ เช่น and เป็นแบบประโยค และ && เป็นแบบสัญลักษณ์ซึ่งได้ผลลัพธ์เช่นเดียวกัน ซึ่งในบทเรียนนี้ส่วนมากแล้วเราจะใช้แบบสัญลักษณ์มากกว่า
<?php
$expr1 = (1 == 1); // true
$expr2 = (10 > 20); // false
$expr3 = $expr1 && $expr2; // false
$expr4 = $expr1 || $expr2; // true
$expr5 = !$expr4; // false
echo "expr1 = $expr1\n";
echo "expr2 = $expr2\n";
echo "expr3 = $expr3\n";
echo "expr4 = $expr4\n";
echo "expr5 = $expr5\n";
echo "expr1 = " , var_dump($expr1);
echo "expr2 = " , var_dump($expr2);
echo "expr3 = " , var_dump($expr3);
echo "expr4 = " , var_dump($expr4);
echo "expr5 = " , var_dump($expr5);
?>
ในภาษา PHP เครื่องหมายในการต่อ String คือจุด (.) ใช้สำหรับต่อ String ตั้งแต่สอง String ให้เป็น String เดียวกัน
$str = "marcus" . "code";