Ποια είναι η διαφορά μεταξύ δημόσιου, ιδιωτικού και προστατευμένου στην PHP

Poia Einai E Diaphora Metaxy Demosiou Idiotikou Kai Prostateumenou Sten Php



Η PHP χρησιμοποιείται ευρέως για την ανάπτυξη δυναμικών ιστοσελίδων και διαδικτυακών εφαρμογών. Η PHP παρέχει λέξεις-κλειδιά γνωστές ως τροποποιητές πρόσβασης . Οι ιδιότητες του τροποποιητή πρόσβασης χρησιμοποιούνται για την πρόσβαση στις ιδιότητες μεταβλητής, κλάσης ή κλάσης με τρεις διαφορετικούς τρόπους, όπως π.χ δημόσιο , ιδιωτικός, και προστατεύονται . Σε αυτό το άρθρο, θα συζητήσουμε αυτούς τους τροποποιητές πρόσβασης και θα προσδιορίσουμε τη διαφορά μεταξύ αυτών των τριών τροποποιητών πρόσβασης στη γλώσσα προγραμματισμού PHP.

Τι είναι οι Τροποποιητές Access στην PHP;

Στην PHP οι τροποποιητές πρόσβασης είναι σημαντικοί επειδή δίνουν στους χρήστες τη δυνατότητα να ρυθμίζουν την ορατότητα καθώς και την προσβασιμότητα των χαρακτηριστικών και των μεθόδων κλάσης. Ως αποτέλεσμα αυτού, παρέχει ενθυλάκωση και ασφάλεια δεδομένων, και ως εκ τούτου, τα μέλη της κλάσης προστατεύονται από μη εξουσιοδοτημένη πρόσβαση ή τροποποίηση. Επίσης, διευκολύνει τη συντήρηση του κώδικα και τον εντοπισμό σφαλμάτων.







Τύποι Τροποποιητών Πρόσβασης

Οι τρεις τροποποιητές πρόσβασης που υπάρχουν στην PHP συζητούνται παρακάτω:



  • Δημόσιο: Μπορείτε να αποκτήσετε πρόσβαση σε μια δημόσια μέθοδο εκτός της τάξης. Αυτό σημαίνει ότι οποιοσδήποτε κώδικας μπορεί να αποκτήσει πρόσβαση, να αλλάξει και να καλέσει μια δημόσια μέθοδο.
  • Ιδιωτικός: Η πρόσβαση στην ιδιωτική μέθοδο περιορίζεται στην ίδια την κλάση. Αυτό σημαίνει ότι κανένας από τους άλλους κωδικούς, ακόμα κι αν είναι θυγατρική τάξη, δεν επιτρέπεται να έχει πρόσβαση σε μια ιδιωτική μέθοδο ή να διαβάσει την ιδιωτική τιμή.
  • Προστατευμένο: Μια προστατευμένη μέθοδος είναι προσβάσιμη μόνο μέσα σε μια κλάση και κλάσεις που σχετίζονται με αυτήν. δεν μπορεί να χρησιμοποιηθεί εκτός αυτών των κλάσεων. Οποιοσδήποτε πηγαίος κώδικας που χρειάζεται πρόσβαση στην παρουσία κλάσης μπορεί να διαβάσει ή να αλλάξει τα δεδομένα μιας προστατευμένης ιδιότητας ή να επικαλεστεί μια προστατευμένη συνάρτηση.

Διαφορά μεταξύ των τροποποιητών δημόσιας, ιδιωτικής και προστατευμένης πρόσβασης στην PHP

Ιδιοκτησία Δημόσιο Ιδιωτικός Προστατεύεται
Προσιτότητα Αυτοί οι τροποποιητές πρόσβασης μπορούν να είναι προσβάσιμοι οπουδήποτε, όπως μέσα και έξω από τον κώδικα. Οι προσδιοριστές ιδιωτικής πρόσβασης είναι προσβάσιμοι μόνο εντός της κλάσης. Θα μπορούσε να είναι προσβάσιμο μέσα στην τάξη και τις σχετικές (παιδικές) κλάσεις και μεθόδους της.
Ευκαμψία Η μεγαλύτερη ευελιξία προσφέρεται από δημόσιους πόρους, καθώς είναι προσβάσιμη από οπουδήποτε. Δεδομένου ότι είναι αποκλειστικά προσβάσιμες εντός της τάξης, αυτές οι μέθοδοι προσφέρουν τη μικρότερη ευελιξία. Η προστατευμένη μέθοδος παρέχει μέτρια ευελιξία καθώς οι θυγατρικές τάξεις μπορούν να έχουν πρόσβαση σε αυτές τις μεθόδους.
Ενθυλάκωση Άλλος κώδικας μπορεί να έχει πρόσβαση ή να ενθυλακώνει δημόσιες μεθόδους, αλλά ο προγραμματιστής έχει τον έλεγχο αυτού. Μια ιδιωτική μέθοδος είναι ενσωματωμένη μέσα στην κλάση, καθιστώντας αδύνατη την πρόσβαση ή την ενημέρωση του εξωτερικού κώδικα. Η διαδικασία ενθυλάκωσής του είναι η ίδια με τη δημόσια μέθοδο στην PHP.
Ασφάλεια Οι δημόσιες μέθοδοι είναι προσβάσιμες από οπουδήποτε. Έτσι, παρέχουν χαμηλό επίπεδο ασφάλειας στον κώδικα. Το μέγιστο επίπεδο ασφάλειας παρέχεται από τροποποιητές ιδιωτικής πρόσβασης επειδή περιέχονται πλήρως στην κλάση. Δεδομένου ότι μπορούν να προσπελαστούν μόνο από μέλη της κλάσης και τις υποκλάσεις της, οι τροποποιητές προστατευμένης πρόσβασης προσφέρουν ένα λογικό επίπεδο ασφάλειας.

Ας δούμε τη διαφορά μεταξύ αυτών των προσδιοριστών πρόσβασης χρησιμοποιώντας ένα απλό παράδειγμα προγράμματος στην PHP.



Παράδειγμα: Πρόγραμμα PHP με τροποποιητές ιδιωτικής, δημόσιας και προστατευμένης πρόσβασης





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

< ?php
τάξη MyClass {
δημόσιο $δημόσιο = «Δημόσιο-μεταβλητή. \n ' ; // Μπορεί να προσπελαστεί από οπουδήποτε
ιδιωτικός $ιδιωτικό = «Ιδιωτικό-μεταβλητό. \n ' ; // Είναι δυνατή η πρόσβαση μόνο μέσα από την τάξη
προστατεύονται $προστατεύεται = 'Προστατευμένη-μεταβλητή.' ; // Είναι δυνατή η πρόσβαση εντός της κλάσης και οποιωνδήποτε υποκλάσεων

δημόσιο λειτουργία getPrivate ( ) {
ΕΠΙΣΤΡΟΦΗ $αυτό - > ιδιωτικός;
}

δημόσιο λειτουργία getProtected ( ) {
ΕΠΙΣΤΡΟΦΗ $αυτό - > προστατεύονται?
}
}
$obj = νέα MyClass ( ) ;

ηχώ $obj - > δημόσιο;
ηχώ $obj - > getPrivate ( ) ;
ηχώ $obj - > getProtected ( ) ;
? >



Στο παραπάνω πρόγραμμα, ορίσαμε μια κλάση ως Η τάξη μου με δημόσια περιουσία ως $δημόσιο που θα μπορούσε να έχει πρόσβαση οπουδήποτε στον κώδικα, μια ιδιωτική ιδιοκτησία όπως $ιδιωτικό , και μια προστατευόμενη ιδιοκτησία που ονομάζεται $προστατεύεται , επομένως δεν μπορούμε να έχουμε πρόσβαση σε ιδιωτικούς και προστατευμένους προσδιοριστές απευθείας εκτός της κλάσης. Όπως χρησιμοποιήσαμε δύο δημόσιες μεθόδους που ονομάζονται getPrivate() και getProtected() που επιστρέφουν τις τιμές των μεταβλητών ιδιωτικών και προστατευμένων ιδιοτήτων, αντίστοιχα, και η έξοδος δίνεται παρακάτω:

συμπέρασμα

Η PHP προσφέρει πολλές λειτουργίες και μία από αυτές είναι οι λέξεις-κλειδιά που ονομάζονται τροποποιητές πρόσβασης. Αυτοί οι τροποποιητές πρόσβασης παρέχουν διαφορετικά μοτίβα πρόσβασης στα δεδομένα των κλάσεων στο πρόγραμμα PHP. Στο παραπάνω σεμινάριο, είδαμε τη διαφορά μεταξύ των τροποποιητών πρόσβασης όσον αφορά την προσβασιμότητα, την ενθυλάκωση, την ευελιξία και την ασφάλεια που προσφέρονται στην PHP.