ชนิด Prefix และ Postfix ใน PHP
ที่จริงแล้วการดำเนินการเพิ่มค่าและลดค่าสามารถเขียนได้สองวิธี ในรูปแบบ postfix
การดำเนินการจะเขียนหลังชื่อตัวแปร
แบบนี้: $a++ และในรูปแบบ prefix
- ก่อนชื่อตัวแปร แบบนี้:
++$a ลองดูตัวอย่างกันว่า
ความแตกต่างระหว่างสองวิธีคืออะไร
ในตัวอย่างต่อไป echo แรกจะแสดงผล
0 เนื่องจากเริ่มแรกจะทำงานแสดงผล
ออกทางหน้าจอก่อน แล้วตัวแปรจึงจะเพิ่มค่า:
<?php
$num = 0;
echo $num++; // จะแสดงผล 0 เนื่องจากตัวแปรจะเพิ่มค่าเฉพาะหลังจาก echo
echo $num; // จะแสดงผล 1 - ตัวแปรเปลี่ยนแปลงแล้ว
?>
และตอนนี้ตัวแปรจะเพิ่มค่าก่อน แล้ว จึงจะมีการแสดงผลออกทางหน้าจอ:
<?php
$num = 0;
echo ++$num; // จะแสดงผล 1 - ตัวแปรเพิ่มค่าทันที
?>
พฤติกรรมนี้เป็นจริงไม่เพียงสำหรับ การแสดงผลออกทางหน้าจอ แต่ยังสำหรับการกำหนดค่า:
<?php
$num1 = 0;
$num2 = $num1++; // ในตัวแปร $num2 จะถูกบันทึกเป็น 0
echo $num2; // จะแสดงผล 0
echo $num1; // จะแสดงผล 1 - ตัวแปร $num1 เปลี่ยนแปลงหลังการบันทึกใน $num2
?>
และตอนนี้เปลี่ยนรูปแบบ postfix เป็น prefix:
<?php
$num1 = 0;
$num2 = ++$num1; // ในตัวแปร $num2 จะถูกบันทึกเป็น 1
echo $num2; // จะแสดงผล 1
?>
หากการดำเนินการของเราทำงานในบรรทัดแยกต่างหาก จะไม่มีความแตกต่างระหว่างรูปแบบ prefix และ postfix
<?php
$num = 0;
++$num;
$num++;
echo $num; // จะแสดงผล 2
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num = 3;
echo ++$num;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num = 3;
echo $num++;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num = 3;
echo --$num;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num = 3;
echo $num--;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>