Προθεματικός και Μεταθεματικός Τύπος στην PHP
Στην πραγματικότητα, οι πράξεις αύξησης και μείωσης
μπορούν να γραφτούν με δύο τρόπους. Στη μεταθεματική
μορφή, η πράξη γράφεται μετά το όνομα της μεταβλητής,
έτσι: $a++, ενώ στη προθεματική
μορφή - πριν από το όνομα της μεταβλητής, έτσι:
++$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
?>
Τώρα ας αλλάξουμε τη μεταθεματική μορφή σε προθεματική:
<?php
$num1 = 0;
$num2 = ++$num1; // στη μεταβλητή $num2 θα καταγραφεί 1
echo $num2; // θα εμφανίσει 1
?>
Εάν η πράξη μας εκτελείται σε ξεχωριστή γραμμή, τότε δεν υπάρχει διαφορά μεταξύ προθεματικής και μεταθεματικής μορφής:
<?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;
?>