ชนิด Prefix และ Postfix ใน PHP

ที่จริงแล้วการดำเนินการเพิ่มค่าและลดค่าสามารถเขียนได้สองวิธี ในรูปแบบ postfix การดำเนินการจะเขียนหลังชื่อตัวแปร แบบนี้: $a++ และในรูปแบบ prefix - ก่อนชื่อตัวแปร แบบนี้: ++$a ลองดูตัวอย่างกันว่า ความแตกต่างระหว่างสองวิธีคืออะไร

ในตัวอย่างต่อไป echo แรกจะแสดงผล 0 เนื่องจากเริ่มแรกจะทำงานแสดงผล ออกทางหน้าจอก่อน แล้วตัวแปรจึงจะเพิ่มค่า:

php<?php
  $num = 0;
  echo $num++; // จะแสดงผล 0 เนื่องจากตัวแปรจะเพิ่มค่าเฉพาะหลังจาก echo
  echo $num;   // จะแสดงผล 1 - ตัวแปรเปลี่ยนแปลงแล้ว
?>

และตอนนี้ตัวแปรจะเพิ่มค่าก่อน แล้ว จึงจะมีการแสดงผลออกทางหน้าจอ:

php<?php
  $num = 0;
  echo ++$num; // จะแสดงผล 1 - ตัวแปรเพิ่มค่าทันที
?>

พฤติกรรมนี้เป็นจริงไม่เพียงสำหรับ การแสดงผลออกทางหน้าจอ แต่ยังสำหรับการกำหนดค่า:

php<?php
  $num1 = 0;
  $num2 = $num1++; // ในตัวแปร $num2 จะถูกบันทึกเป็น 0
  echo $num2;      // จะแสดงผล 0
  echo $num1;      // จะแสดงผล 1 - ตัวแปร $num1 เปลี่ยนแปลงหลังการบันทึกใน $num2
?>

และตอนนี้เปลี่ยนรูปแบบ postfix เป็น prefix:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // ในตัวแปร $num2 จะถูกบันทึกเป็น 1
  echo $num2;      // จะแสดงผล 1
?>

หากการดำเนินการของเราทำงานในบรรทัดแยกต่างหาก จะไม่มีความแตกต่างระหว่างรูปแบบ prefix และ postfix

php<?php
  $num = 0;
  ++$num;
  $num++;
  echo $num; // จะแสดงผล 2
?>
Задание 1

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num = 3;
  echo ++$num;
?>
Задание 2

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num = 3;
  echo $num++;
?>
Задание 3

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num = 3;
  echo --$num;
?>
Задание 4

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num = 3;
  echo $num--;
?>
Задание 5

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num1 = 3;
  $num2 = ++$num1;
  echo $num1;
  echo $num2;
?>
Задание 6

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num1 = 3;
  $num2 = $num1++;
  echo $num1;
  echo $num2;
?>
Задание 7

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num1 = 3;
  $num2 = --$num1;
  echo $num1;
  echo $num2;
?>
Задание 8

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num1 = 3;
  $num2 = $num1--;
  echo $num1;
  echo $num2;
?>
Задание 9

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงผลอะไร ออกทางหน้าจอ:

php<?php
  $num1 = 3;
  $num1++;
  $num2 = $num1--;
  echo $num1++;
  echo --$num2;
?>