Sobes.tech
Middle

Τι είναι η συμπεριφορά 'αντιγραφή κατά την εγγραφή';

sobes.tech AI

Απάντηση από AI

Αυτή είναι μια βελτιστοποίηση στη διαχείριση μνήμης στο PHP (και σε άλλες γλώσσες/συστήματα), όπου η αντιγραφή της τιμής μιας μεταβλητής δεν πραγματοποιείται άμεσα, αλλά μόνο όταν προσπαθούμε να τροποποιήσουμε την αντιγραφή ή το αρχικό, εάν και οι δύο αναφέρονται στο ίδιο μέρος στη μνήμη. Πριν την τροποποίηση, και οι δύο μεταβλητές απλώς αναφέρονται στα ίδια δεδομένα.

<?php
$a = 'σειρά'; // $a δείχνει σε ένα μπλοκ μνήμης με τη συμβολοσειρά "σειρά"
$b = $a; // $b τώρα επίσης δείχνει στο ίδιο μπλοκ μνήμης, δεν γίνεται αντιγραφή

// Μόνο τώρα, κατά την τροποποίηση του $b, η PHP δημιουργεί μια νέα αντιγραφή των δεδομένων για το $b
$b .= ' τροποποιήθηκε';

echo $a; // Θα εμφανίσει: σειρά

echo $b; // Θα εμφανίσει: σειρά τροποποιήθηκε
?>