Προθεματικός και Μεταθεματικός Τύπος στην PHP

Στην πραγματικότητα, οι πράξεις αύξησης και μείωσης μπορούν να γραφτούν με δύο τρόπους. Στη μεταθεματική μορφή, η πράξη γράφεται μετά το όνομα της μεταβλητής, έτσι: $a++, ενώ στη προθεματική μορφή - πριν από το όνομα της μεταβλητής, έτσι: ++$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
?>

Τώρα ας αλλάξουμε τη μεταθεματική μορφή σε προθεματική:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // στη μεταβλητή $num2 θα καταγραφεί 1
  echo $num2;      // θα εμφανίσει 1
?>

Εάν η πράξη μας εκτελείται σε ξεχωριστή γραμμή, τότε δεν υπάρχει διαφορά μεταξύ προθεματικής και μεταθεματικής μορφής:

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;
?>