ในบทนี้เราจะพูดถึงการใช้โอเปอเรเตอร์ต่างๆ ใน PHP
ใน PHP ตัวดำเนินการมอบหมาย = ใช้เพื่อกำหนดค่าให้กับตัวแปร
ใน PHP ตัวดำเนินการทางคณิตศาสตร์ + ใช้ในการบวกค่าเข้าด้วยกัน
ตัวดำเนินการ | ชื่อ | อธิบาย | ตัวอย่าง | ผลลัพธ์ |
---|---|---|---|---|
x + ย | เพิ่ม | ผลรวมของ x และ y | 2+2 | 4 |
เอ็กซ์-วาย | ลด | ความแตกต่างระหว่าง x และ y | 5-2 | 3 |
x*y | เอา | ผลคูณของ x และ y | 5*2 | 10 |
เอ็กซ์/ป | ลบ | ผลหารของ x และ y | 15/5 | 3 |
x % y | โมดูโล่ (ส่วนที่เหลือ) | ส่วนที่เหลือเมื่อ x หารด้วย y | 5% 210% 810% 2 | 120 |
-x | ปฏิเสธ | ปฏิเสธ x | -2 | -2 |
ก | วางเคียงกัน | เชื่อมต่อสองสายเข้าด้วยกัน | “สวัสดี” . “ฮา” | ไฮฮา |
ตัวอย่างต่อไปนี้แสดงผลลัพธ์ที่แตกต่างกันโดยใช้ตัวดำเนินการทางคณิตศาสตร์ที่แตกต่างกัน:
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // เอาต์พุต 16 เสียงสะท้อน ' <br> ' ; // ขึ้นบรรทัดใหม่ เสียงสะท้อน ( $x - $y ) ; // เอาต์พุต 4 เสียงสะท้อน ' <br> ' ; // ขึ้นบรรทัดใหม่ เสียงสะท้อน ( $x * $y ) ; // เอาต์พุต 60 เสียงสะท้อน ' <br> ' ; // ขึ้นบรรทัดใหม่ เสียงสะท้อน ( $x / $y ) ; // เอาต์พุต 1.6666666666667 เสียงสะท้อน ' <br> ' ; // ขึ้นบรรทัดใหม่ เสียงสะท้อน ( $x % $y ) ; // เอาต์พุต 4 เสียงสะท้อน ' <br> ' ; // ขึ้นบรรทัดใหม่ เสียงสะท้อน - $ x ;
เวอร์ชัน PHP7+ มีตัวดำเนินการการหารจำนวนเต็มใหม่ intdiv() ตัวอย่างการใช้งาน:
<?php var_dump ( intdiv ( 10 , 3 ) ) ;
ตัวอย่างข้างต้นจะแสดงผล:
อินท์(3)
ใน PHP ตัวดำเนินการกำหนดพื้นฐานคือ "=" หมายความว่าตัวถูกดำเนินการทางซ้ายถูกตั้งค่าเป็นค่าของนิพจน์ทางขวา นั่นคือ ค่าของ "$x = 5" คือ 5
ตัวดำเนินการ | เทียบเท่ากับ | อธิบาย |
---|---|---|
x = ย | x = ย | ตัวถูกดำเนินการทางซ้ายถูกตั้งค่าเป็นค่าของนิพจน์ทางขวา |
x += ย | x = x + y | เพิ่ม |
x -= ย | x = x - y | ลด |
x*=ย | x = x * y | เอา |
x /= ย | x = x / ย | ลบ |
x%=y | x = x % y | โมดูโล่ (ส่วนที่เหลือของแผนก) |
ก .= ข | ก = ก | เชื่อมต่อสองสายเข้าด้วยกัน |
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงผลลัพธ์ที่แตกต่างกันโดยใช้ตัวดำเนินการที่ได้รับมอบหมายที่แตกต่างกัน:
<?php $ x = 10 ; $x ; // เอาต์พุต 10 $y = 20 ; $y + = 100 ; $y ; // เอาท์พุต 120 $z = 50 ; $z - = 25 ; $z ; // เอาต์พุต 25 $i = 5 ; $i * = 6 ; $i ; // เอาท์พุต 30 $เจ = 10 ; $เจ / = 5 ; $เจ ; // เอาต์พุต 2 $k = 15 ; $k % = 4 ; $k ; // เอาต์พุต 3 -
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงผลลัพธ์เดียวกันโดยใช้ตัวดำเนินการสตริงที่แตกต่างกัน:
<?php $a = " สวัสดี " ; $ b = $a . " โลก! " ; $b ; // เอาท์พุต สวัสดีชาวโลก! $x = " สวัสดี " ; $x . = " world! " ; $x ; // เอาท์พุต สวัสดีชาวโลก! -
ตัวดำเนินการ | ชื่อ | อธิบาย |
---|---|---|
++x | เพิ่มขึ้นล่วงหน้า | บวก 1 เข้ากับ x แล้วส่งคืน x |
x++ | หลังการเพิ่มขึ้น | กลับ x แล้วบวก 1 เข้ากับ x |
--x | ลดลงล่วงหน้า | ลด x ลง 1 แล้วส่งกลับ x |
เอ็กซ์ -- | ลดลงตามมา. | ส่งกลับค่า x จากนั้นลดค่า x ลง 1 |
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงผลลัพธ์ของการใช้ตัวดำเนินการเพิ่ม/ลด:
<?php $x = 10 ; echo ++ $x ; // เอาต์พุต 11 $ y = 10 ; $y ++; // เอาต์พุต 10 $z = 5 ; echo -- $z ; // เอาต์พุต 4 $ i = 5 ; $i --; // เอาต์พุต 5 -
ตัวดำเนินการเปรียบเทียบช่วยให้คุณสามารถเปรียบเทียบค่าสองค่าได้:
ตัวดำเนินการ | ชื่อ | อธิบาย | ตัวอย่าง |
---|---|---|---|
x == ย | เท่ากัน | คืนค่าเป็นจริงถ้า x เท่ากับ y | 5==8 ส่งคืนค่าเท็จ |
x === ย | เท่ากับอย่างแน่นอน | คืนค่าเป็นจริงถ้า x เท่ากับ y และเป็นประเภทเดียวกัน | 5==="5" ส่งคืนค่าเท็จ |
x != ย | ไม่เท่ากับ | คืนค่าเป็นจริงถ้า x ไม่เท่ากับ y | 5!=8 คืนค่าจริง |
x <> ย | ไม่เท่ากับ | คืนค่าเป็นจริงถ้า x ไม่เท่ากับ y | 5<>8 ให้ผลตอบแทนเป็นจริง |
x !== ย | ไม่เท่ากันแน่นอน | คืนค่าเป็นจริงถ้า x ไม่เท่ากับ y หรือไม่ใช่ชนิดเดียวกัน | 5!=="5" ส่งคืนค่าจริง |
x > ย | มากกว่า | คืนค่าเป็นจริงถ้า x มากกว่า y | 5>8 ส่งคืนค่าเท็จ |
x < y | น้อยกว่า | คืนค่าเป็นจริงถ้า x น้อยกว่า y | 5<8 ให้ผลตอบแทนเป็นจริง |
x >= y | มากกว่าหรือเท่ากับ | คืนค่าเป็นจริงถ้า x มากกว่าหรือเท่ากับ y | 5>=8 ส่งคืนค่าเท็จ |
x <= ย | น้อยกว่าหรือเท่ากับ | คืนค่าเป็นจริงถ้า x น้อยกว่าหรือเท่ากับ y | 5<=8 ส่งคืนค่าจริง |
ตัวอย่างต่อไปนี้แสดงผลลัพธ์ที่แตกต่างกันโดยใช้ตัวดำเนินการเปรียบเทียบบางตัว:
<?php $ x = 100 ; $ y = " 100 " ;" <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x !== $ y ) ; " <br> " ; $ a = 50 ; $ b = 90 ;" <br> " ; var_dump ( $a < $ b ) ;
ตัวดำเนินการ | ชื่อ | อธิบาย | ตัวอย่าง |
---|---|---|---|
x และ y | และ | คืนค่าเป็นจริงถ้าทั้ง x และ y เป็นจริง | x=6y=3(x < 10 และ y > 1) ส่งคืนค่าจริง |
x หรือ y | หรือ | คืนค่าเป็นจริงหาก x และ y อย่างน้อยหนึ่งรายการเป็นจริง | x=6y=3(x==6 หรือ y==5) ส่งคืนค่าจริง |
x xor y | แฮคเกอร์ | ถ้า x และ y มีเพียงหนึ่งเดียวเท่านั้น ก็จะคืนค่าเป็นจริง | x=6y=3(x==6 xor y==3) ส่งคืนค่าเท็จ |
x && ย | และ | คืนค่าเป็นจริงถ้าทั้ง x และ y เป็นจริง | x=6y=3(x < 10 && y > 1) ส่งคืนค่าจริง |
x || | หรือ | คืนค่าเป็นจริงหาก x และ y อย่างน้อยหนึ่งรายการเป็นจริง | x=6y=3(x==5 || y==5) ส่งคืนค่าเท็จ |
!x | เลขที่ | ถ้า x ไม่เป็นจริง ให้คืนค่าเป็นจริง | x=6y=3!(x==y) ส่งคืนค่าจริง |
ตัวดำเนินการ | ชื่อ | อธิบาย |
---|---|---|
x + ย | รวมตัว | เซตของ x และ y |
x == ย | เท่ากัน | คืนค่าเป็นจริงหาก x และ y มีคู่คีย์/ค่าเหมือนกัน |
x === ย | ความเท่าเทียมกัน | คืนค่าเป็นจริงหาก x และ y มีคู่คีย์/ค่าเหมือนกันในลำดับและประเภทเดียวกัน |
x != ย | ไม่เท่ากัน | คืนค่าเป็นจริงถ้า x ไม่เท่ากับ y |
x <> ย | ไม่เท่ากัน | คืนค่าเป็นจริงถ้า x ไม่เท่ากับ y |
x !== ย | ไม่เหมือนกัน | คืนค่าเป็นจริงถ้า x ไม่เท่ากับ y |
ตัวอย่างต่อไปนี้แสดงผลลัพธ์ที่แตกต่างกันโดยใช้ตัวดำเนินการอาร์เรย์บางตัว:
<?php $x = array ( " a " => " red " , " b " => " green " ) ; $ y = array ( " c " => " blue " , " d " => " yellow " ) ; = $x + $y ; // รวมอาร์เรย์ $x และ $y var_dump ( $ z ) ; var_dump ( $ x == $ y ) ; x !== $ y ) ;
ตัวดำเนินการแบบมีเงื่อนไขอีกตัวหนึ่งคือตัวดำเนินการ "?:" (หรือแบบไตรภาค)
(expr1) ? (expr2) : (expr3)
ค่าเมื่อ expr1 ประเมินเป็น TRUE คือ expr2 และเมื่อ expr1 ประเมินเป็น FALSE ค่าจะเป็น expr3
ใน PHP 5.3 สามารถละเว้นส่วนตรงกลางของตัวดำเนินการที่ประกอบไปด้วยได้ นิพจน์ expr1 ?: expr3 ส่งคืน expr1 หาก expr1 ประเมินค่าเป็น TRUE และ expr3 เป็นอย่างอื่น
ในตัวอย่างต่อไปนี้ จะถือว่าคำขอ $_GET มีค่าผู้ใช้ หากเป็นเช่นนั้น ระบบจะส่งคืน $_GET['user'] มิฉะนั้น จะไม่มีใครส่งคืน:
<?php $test = ' Coder Tutorial ' ; // วิธีการเขียนแบบปกติ $username = isset ( $test ) ? $ test : ' none ' ; $username , PHP_EOL ; // วิธีการเขียนเวอร์ชัน PHP 5.3+ $username = $test ? : ' none ' ; $ชื่อผู้ ใช้ , PHP_EOL ;
บทช่วยสอนสำหรับ Coders บทช่วยสอน Coders
หมายเหตุ: PHP_EOL เป็นอักขระขึ้นบรรทัดใหม่ เข้ากันได้กับแพลตฟอร์มที่ใหญ่กว่า
มีตัวดำเนินการรวม NULL เพิ่มเติม ??
ในเวอร์ชัน PHP7+ ตัวอย่างมีดังนี้:
<?php // หากไม่มี $_GET['user'] ให้ส่งคืน 'nobody' หรือส่งคืนค่าของ $_GET['user'] $ username = $ _GET [ ' user ' ] ?? $username = isset ( $_GET [ ' user ' ] ) ? $_GET [ ' user ' ] : ' none ' ? >
PHP7+ รองรับตัวดำเนินการเปรียบเทียบแบบรวม ตัวอย่างดังต่อไปนี้:
<?php // ประเภทจำนวนเต็ม เสียงสะท้อน 1 <=> 1 ; // 0 เสียงสะท้อน 1 <=> 2 ; // -1 เสียงสะท้อน 2 <=> 1 ; // 1 // ประเภทจุดลอยตัว เสียงสะท้อน 1 .5 <=> 1 .5 ; // 0 เสียงสะท้อน 1 .5 <=> 2 .5 ; // -1 เสียงสะท้อน 2 .5 <=> 1 .5 ; // 1 // สตริง เสียงสะท้อน " ก " <=> " ก " ; เสียงสะท้อน " ก " <=> " ข " ; // -1 เสียงสะท้อน " ข " <=> " ก " ; // 1 -
ตารางต่อไปนี้แสดงรายการตัวดำเนินการจากลำดับความสำคัญสูงสุดไปต่ำสุด ตัวดำเนินการในบรรทัดเดียวกันจะมีลำดับความสำคัญเท่ากัน และทิศทางที่รวมกันจะกำหนดลำดับของการประเมิน
หมายเหตุ : ซ้าย = จากซ้ายไปขวา ขวา = จากขวาไปซ้าย
ทิศทางการผูกมัด | ตัวดำเนินการ | ข้อมูลเพิ่มเติม |
---|---|---|
ไม่มี | โคลนใหม่ | โคลนและใหม่ |
ซ้าย | - | อาร์เรย์() |
ขวา | ++ -- ~ (int) (ลอย) (สตริง) (อาร์เรย์) (วัตถุ) (บูล) @ | ประเภทและการเพิ่มขึ้น/ลดลง |
ไม่มี | อินสแตนซ์ของ | พิมพ์ |
ขวา | - | ตัวดำเนินการเชิงตรรกะ |
ซ้าย | - | ตัวดำเนินการทางคณิตศาสตร์ |
ซ้าย | - | ตัวดำเนินการทางคณิตศาสตร์และสตริง |
ซ้าย | - | ตัวดำเนินการบิต |
ไม่มี | - | ตัวดำเนินการเปรียบเทียบ |
ซ้าย | - | ตัวดำเนินการบิตและการอ้างอิง |
ซ้าย | - | ตัวดำเนินการบิต |
ซ้าย | - | ตัวดำเนินการบิต |
ซ้าย | - | ตัวดำเนินการเชิงตรรกะ |
ซ้าย | - | ตัวดำเนินการเชิงตรรกะ |
ซ้าย | - | ตัวดำเนินการที่ประกอบไปด้วย |
ขวา | - | ผู้ปฏิบัติงานที่ได้รับมอบหมาย |
ซ้าย | และ | ตัวดำเนินการเชิงตรรกะ |
ซ้าย | เอ็กซ์ออร์ | ตัวดำเนินการเชิงตรรกะ |
ซ้าย | หรือ | ตัวดำเนินการเชิงตรรกะ |
ซ้าย | - | ใช้ในหลายสถานที่ |
ในลำดับความสำคัญของตัวดำเนินการ หรือ ||, && และ และ เป็นตัวดำเนินการเชิงตรรกะทั้งหมดที่มีผลเหมือนกัน แต่ลำดับความสำคัญต่างกัน
<?php // ลำดับความสำคัญ: && > = > และ // ลำดับความสำคัญ: ||. > = > หรือ $ a = 3 ; $ b = เท็จ ; หรือ $b ; var_dump ( $c ) ; // $c นี่คือค่า int 3 ไม่ใช่ค่าบูลีนจริง $d = $a || . $ b ; // $d นี่คือค่าบู ลี น จริง -
ผลลัพธ์ที่ได้ของตัวอย่างข้างต้นคือ:
int(3)บูล(จริง)
เราระบุลำดับของการดำเนินการอย่างชัดเจนผ่านการจับคู่วงเล็บ แทนที่จะอาศัยลำดับความสำคัญของตัวดำเนินการและการเชื่อมโยง ซึ่งโดยปกติจะช่วยเพิ่มความสามารถในการอ่านโค้ดได้
<?php // การดำเนินการจัดลำดับความสำคัญของวงเล็บ $a = 1 ; $ b = 2 ; $c = 3 ; $d = $a + $b * $c ; $ d ; " n " ; $e = ( $a + $b ) * $c ; // ใช้วงเล็บ เสียงสะท้อน $ e ; " n " ;
ผลลัพธ์ที่ได้ของตัวอย่างข้างต้นคือ:
79