Σύνδεσμοι στην PHP
Στην PHP μπορούμε να αντιστοιχίσουμε την τιμή μιας μεταβλητής σε μια άλλη:
<?php
$num1 = 1;
$num2 = $num1; // αντιστοιχίζουμε
echo $num1; // 1
echo $num2; // 1
?>
Με μια τέτοια αντιστοίχιση στη νέα μεταβλητή εγγράφεται ένα αντίγραφο της τιμής της πρώτης μεταβλητής. Αυτό σημαίνει ότι οι μεταβλητές δεν συνδέονται με κανέναν τρόπο μεταξύ τους και μπορούν να τροποποιηθούν ανεξάρτητα. Δείτε στο παράδειγμα κώδικα:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - δεν άλλαξε
?>
Μπορούμε, ωστόσο, να κάνουμε έτσι ώστε να αντιγραφεί όχι η τιμή της μεταβλητής, αλλά ένας σύνδεσμος σε αυτήν. Σε αυτήν την περίπτωση όταν αλλάζει η τιμή της μιας μεταβλητής, θα αλλάζει και η τιμή της άλλης.
Για να μεταφέρουμε την τιμή με σύνδεσμο, πρέπει πριν από το όνομα της μεταβλητής να βάλουμε το σύμβολο &:
<?php
$num1 = 1;
$num2 = &$num1; // μεταφέρουμε με σύνδεσμο
?>
Τώρα η αλλαγή της πρώτης μεταβλητής θα οδηγήσει και σε αλλαγή της δεύτερης:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - άλλαξε
?>
Ομοίως, αν αλλάξουμε την πρώτη μεταβλητή, θα αλλάξει και η δεύτερη:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>