Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ตัวดำเนินการเพิ่ม/ลด (Increment/Decrement Operators) ใน PHP

บทนำ

ตัวดำเนินการเพิ่มและลดแบบ C style ที่แทนด้วย ++ และ -- ตามลำดับ ถูกกำหนดใน PHP ด้วย ตามที่ชื่อบ่งชี้ ++ ตัวดำเนินการเพิ่ม (increment operator) เพิ่มค่าตัวถูกดำเนินการขึ้น 1 ตัวดำเนินการลด (Decrement operator) -- ลดค่าลง 1 ทั้งสองเป็น unary operators เนื่องจากต้องการตัวถูกดำเนินการเพียงตัวเดียว ตัวดำเนินการเหล่านี้ (++ หรือ --) สามารถใช้ในรูปแบบ prefix หรือ postfix ได้ ทั้งเป็นนิพจน์เดี่ยวหรือร่วมกับตัวดำเนินการอื่นในนิพจน์ซับซ้อนกว่า

รูปแบบไวยากรณ์

$x=5; $x=5; $y=5; $x++; //postfix increment $y--; //postfix decrement ++$y; //prefix increment --$x; //prefix decrement

เมื่อใช้แยกต่างหาก postfix และ prefix increment/decrement operator จะทำงานคล้ายกัน ดังนั้น $x++ และ ++$x ทั้งคู่เพิ่มค่า $x ขึ้น 1 เหมือนกัน $y-- และ --$y ทั้งคู่อย่างกันลดค่า $y ลง 1

โค้ดต่อไปนี้แสดงผลของตัวดำเนินการเพิ่ม/ลด ในรูปแบบ post/prefix:

ตัวอย่าง

<?php $x=5; $y=5; $x++; //postfix increment $y--; //postfix decrement echo "x = $x y = $y" . "\n"; ++$y; //prefix increment --$x; //prefix decrement echo "x = $x y = $y" . "\n";; ?>

ผลลัพธ์

x = 6 y = 4 x = 5 y = 5

เมื่อใช้ในนิพจน์กำหนดค่า (assignment expression) postfix ++ หรือ -- operator มี precedence ต่ำกว่า = ดังนั้น $a=$x++ ให้ผล $a=$x ตามด้วย $x++ ส่วน prefix ++/-- operators มี precedence สูงกว่า = ดังนั้น $b=--$y ประเมินโดยทำ --$y ก่อน แล้วค่อยมอบหมาย $y ที่ได้ให้ $b

ตัวอย่าง

<?php $x=5; $y=5; $a=$x++; //postfix increment echo "a = $a x = $x" . "\n"; $b=--$y; //prefix decrement echo "b = $b y = $y" . "\n"; ?>

ผลลัพธ์

a = 5 x = 6 b = 4 y = 4

การเพิ่ม/ลดกับตัวแปรตัวอักษร ASCII ก็เป็นไปได้ การเพิ่มจะได้ตัวอักษรถัดไปในชุด ASCII หากการเพิ่มเกินชุด นั่นคือเกิน Z รอบถัดไปของชุด ASCII จะซ้ำ นั่นคือตัวแปรที่มีค่า Z จะเพิ่มเป็น AA ตัวอักษรที่ไม่ใช่ ASCII (นอกเหนือจาก A-Z, a-z และ 0-9) จะถูกข้ามโดยตัวดำเนินการเพิ่ม

ตัวอย่าง

<?php $var='A'; for ($i=1; $i<=3; $i++){     echo ++$var . "\n"; } $var1=1; for ($i=1; $i<=3; $i++){     echo ++$var1 . "\n"; } ?>

ผลลัพธ์

B C D 2 3 4