Η PHP είναι μια από τις πιο συχνά χρησιμοποιούμενες γλώσσες προγραμματισμού στην ανάπτυξη Ιστού. Ένα από τα πιο σημαντικά χαρακτηριστικά αυτής της γλώσσας είναι ότι προσφέρει διαφορετικές μεθόδους περιορισμού. Ας ρίξουμε μια σύντομη ματιά στις ετικέτες ανοίγματος και κλεισίματος της PHP:

  • <?php ?>
  • <?= ?>
  • <? ?>
  • <% %>

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

Γιατί δεν πρέπει να χρησιμοποιούμε σύντομες ετικέτες PHP;

Οι σύντομες ετικέτες PHP μπορούν να είναι πιο χρήσιμες για ευκολία και ταχύτητα κωδικοποίησης. Ωστόσο, στους περισσότερους κεντρικούς υπολογιστές και διακομιστές είναι απενεργοποιημένο από προεπιλογή στη διαμόρφωση του PHP.ini. Στη διαμόρφωση PHP.ini για να λειτουργούν αυτές οι σύντομες ετικέτες short_open_tag πρέπει να ενεργοποιηθεί η επιλογή. Οπότε η μόνη μέθοδος που σίγουρα θα λειτουργήσει σε κάθε διακομιστή PHP είναι . Εάν σκέφτεστε να αναπτύξετε την PHP σας σε έναν διακομιστή που δεν ελέγχετε, μπορείτε πάντα <?php ?> Θα πρέπει να χρησιμοποιήσετε την προσέγγιση.

Σύντομο PHP Echo Tag και PHP.ini

<?php echo() ?>

σε PHP <?= ετικέτα στη διαμόρφωση PHP short_open_tag Μπορεί να χρησιμοποιηθεί είτε η επιλογή είναι ενεργοποιημένη είτε όχι, ώστε να μπορείτε να χρησιμοποιήσετε με ασφάλεια αυτήν τη συντόμευση αντί για την παραπάνω.
Εάν απλώς γράφετε κώδικα για τον εαυτό σας και μπορείτε να ελέγξετε τη διαμόρφωση PHP που χρησιμοποιείτε, ενδέχεται να σας φανούν πιο χρήσιμες οι σύντομες ετικέτες. Αλλά να το θυμάσαι <? ?> η ετικέτα μπορεί να έρχεται σε διένεξη με δηλώσεις XML. Επίσης <% %> Η ετικέτα είναι στην πραγματικότητα στυλ ASP.

Ετικέτες κλεισίματος PHP και πιθανά προβλήματα

Κλείσιμο ενός καθαρού αρχείου PHP (για παράδειγμα, ένα αρχείο που περιέχει μόνο έναν ορισμό κλάσης) ?> Όταν προσθέτετε την ετικέτα, προσέξτε να μην αφήσετε κενές γραμμές πίσω. Ενώ ο διερμηνέας PHP μπορεί να "εκτελέσει" με ασφάλεια έναν χαρακτήρα αλλαγής γραμμής μετά την ετικέτα κλεισίματος, άλλες αλλαγές γραμμής ενδέχεται να εξάγονται στο πρόγραμμα περιήγησης. Αν στη συνέχεια γράφετε κεφαλίδες HTTP, τα πράγματα μπορεί να γίνουν ακόμα πιο μπερδεμένα.

PHP PSR-2

Το πρότυπο κωδικοποίησης PSR-2 είναι μέρος των προτύπων κωδικοποίησης PHP PSR που δημιουργήθηκαν για τον προσδιορισμό των βέλτιστων πρακτικών στην PHP. Τα πρότυπα κωδικοποίησης PSR-2 ισχύουν μόνο για αρχεία που περιέχουν κώδικα PHP. ?> συνιστά να μην χρησιμοποιείτε ετικέτες κλεισίματος. Ο κύριος λόγος για αυτήν τη σύσταση είναι να αποτραπεί η αποστολή χαρακτήρων στο πρόγραμμα περιήγησης χαρακτήρων όπως κενά ή διακοπές γραμμής που έχουν μείνει κατά λάθος μετά την ετικέτα κλεισίματος. Στην PHP, ?> Οποιοσδήποτε χαρακτήρας ακολουθεί την ετικέτα θεωρείται αυτόματα μέρος της εξόδου HTML. Αυτό μπορεί να είναι ιδιαίτερα προβληματικό κατά την επεξεργασία κεφαλίδων HTTP.

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

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

Ετικέτες PHP και συμβατότητα

Κατά τη σύνταξη εφαρμογών web για παλαιότερες εκδόσεις, το κλείσιμο ?> html με ετικέτες <!doctype> Προσέξτε να μην αφήσετε νέα γραμμή μεταξύ των ετικετών. Οι παλαιότερες εκδόσεις του IE ενδέχεται να παρουσιάζουν διαφορετικά σφάλματα εάν συναντήσουν κενά, συμπεριλαμβανομένων των νέων γραμμών, πριν από τη δήλωση τύπου doctype. Αυτό δεν συμβαίνει με τις νεότερες εκδόσεις του IE και άλλα, πιο προηγμένα προγράμματα περιήγησης. (Δηλαδή, για κάθε πρόγραμμα περιήγησης εκτός του IE.)