Όταν περνάτε μια μεταβλητή σε μια συνάρτηση σε PHP και η λειτουργία αλλάζει την τιμή της μεταβλητής , δεν έχει καμία επίδραση στην τιμή της μεταβλητής εκτός του πεδίου εφαρμογής της συνάρτησης . Για να επιτρέψετε σε μια συνάρτηση να αλλάξετε την τιμή μιας μεταβλητής , πρέπει να δηλώσετε συγκεκριμένα αυτήν την πρόθεση με πρόθεμα το όνομα της μεταβλητής με ένα σύμβολο στον ορισμό της συνάρτησης . Για παράδειγμα :
modify_param λειτουργία ( & param ) { }
εικόνων Αξία ή Αναφορά
Η
Μια συνάρτηση δεν μπορεί να τροποποιήσει την τιμή μιας μεταβλητής εκτός το πεδίο της εφαρμογής , επειδή η PHP περνά η μεταβλητή με βάση την αξία . Δημιουργεί ένα αντίγραφο της τιμής της μεταβλητής και περνά το αντίγραφο στη λειτουργία . Οποιεσδήποτε αλλαγές στην τιμή αυτή επηρεάζει μόνο το τοπικό αντίγραφο . Όταν περνάτε από αναφορά χρησιμοποιώντας το εμπορικό και στον ορισμό της συνάρτησης , PHP περνά ένα δείκτη προς το χώρο διευθύνσεων μνήμης που περιέχει την τιμή της μεταβλητής . Οι εργασίες σχετικά με τη μεταβλητή , τότε εκτελείται ενάντια στην παγκόσμια τιμή της μεταβλητής , όχι ένα αντίγραφο της αξίας του .
Η αντικείμενα Περνώντας
Η
Όταν περνάτε ένα αντικείμενο ως παράμετρος σε μια λειτουργία , PHP εξακολουθεί να περνά το αντικείμενο με αξία, αλλά περνάει ένα διαφορετικό είδος της αξίας . Ένα αντίγραφο ενός αντικειμένου λαβή , ή αναγνωριστικό , έχει περάσει στη λειτουργία . Το αναγνωριστικό αντικειμένου επιτρέπει τη λειτουργία για να βρει το χώρο διευθύνσεων μνήμης όπου αποθηκεύονται οι τιμές των μελών αντικειμένου . Αυτό σημαίνει ότι τα μέλη ενός αντικειμένου είναι στην πραγματικότητα πέρασε με αναφορά . Οι λειτουργίες που χρησιμοποιούν τις ιδιότητες και τις μεθόδους ενός αντικειμένου χειραγωγήσουν το χώρο διευθύνσεων της μνήμης των μελών και να αλλάξετε τις γενικές τιμές τους .
Εικόνων Αντικείμενο Λαβή Αντιγραφή
Η
Δεν είναι όλα τα αντικείμενα στην PHP έχουν περάσει με αναφορά , ακόμα κι αν οι αλλαγές στα μέλη του αντικειμένου επηρεάζει τις παγκόσμιες τιμές . Ένα αντίγραφο της λαβής αντικειμένου μεταβιβάζεται σε μια λειτουργία. Αν μια συνάρτηση κάνει μια ανάθεση που αλλάζει την ίδια τη λαβή αντικείμενο , ότι η αλλαγή αυτή δεν τροποποιεί τη λαβή αντικειμένου , δεδομένου ότι έχει περάσει από την αξία . Για να καταστεί δυνατή η λειτουργία για να τροποποιήσετε λαβή του αντικειμένου , θα πρέπει να περάσει το αντικείμενο με αναφορά , όπως ακριβώς θα κάνατε με οποιαδήποτε άλλη μεταβλητή στην PHP .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα