Anonim

Τα μοναδικά αποσπάσματα και τα διπλά εισαγωγικά διαχειρίζονται λίγο διαφορετικά στην PHP. Διαβάστε παρακάτω για να δείτε τις διαφορές ως προς τον τρόπο με τον οποίο αξιολογούνται.

Μοναδικές προσφορές

Οι μοναδικές προσφορές τείνουν να αναλύουν τα πράγματα με πολύ πιο κυριολεκτική έννοια. Για παράδειγμα, λάβετε τα εξής:

$ test = "BOOOM"; echo '$ test'

Το όνομα της μεταβλητής, όταν τίθεται στα ενιαία εισαγωγικά, δεν αναλύεται στην πραγματική του τιμή. Εδώ είναι τι εκτυπώνεται από την εκτέλεση αυτού του προγράμματος ως ένα απλό πρόγραμμα php:

$ test

Υπάρχουν μόνο 2 σενάρια που μπορώ να σκεφτώ από πού πληροφορίες στην πραγματικότητα παίρνουν αναλυτικά μέσα σε μια ενιαία αναγραφόμενη συμβολοσειρά. Πρώτον, για να εμφανιστεί ένας μοναδικός αναφερόμενος χαρακτήρας, πρέπει να προηγηθεί μια αντίστροφη κάθετος. Διαφορετικά, θα ερμηνευτεί ως το τέλος της συμβολοσειράς σας. Δεύτερον, για να εμφανιστεί μια ανάστροφη κάθετο, πρέπει να προηγηθεί μια άλλη πίσω όχθη. Παράδειγμα:

echo 'απλό απόσπασμα: \' '; echo 'backslash: \\';

Διπλά αποσπάσματα

Τα διπλά εισαγωγικά τείνουν να αναλύουν τα πράγματα για εσάς. Όταν τρέχετε ανάμεσα σε διπλά εισαγωγικά:

$ test = "BOOOM"; echo "$ test"

Αποδίδει την πραγματική μεταβλητή τιμή:

BOOOM

Τώρα, περιστασιακά θα συναντήσετε ένα σενάριο όπου το όνομα της μεταβλητής που προσπαθείτε να εξάγετε προκαλείται να μην αναλύεται σωστά λόγω ορισμένων χαρακτήρων που περιβάλλουν.

$ test = "BOOOM"; echo "$ tested";

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

$ test = "BOOOM"; echo "{$ test} ed"

Με το περιτύλιγμα μέσα στα σγουρά αγκύλια, επιτρέπει στην PHP να γνωρίζει πού ξεκινά και σταματάει η μεταβλητή, επιτρέποντάς της να αξιολογήσει σωστά τη μεταβλητή.

Διαφορά ταχύτητας

Έτρεξα μερικές απλές δοκιμές συγκριτικής αξιολόγησης για να αξιολογήσω ορισμένα σενάρια διαφορών, η διαφορά στην ταχύτητα μεταξύ των 2 είναι αμελητέα. Τα μοναδικά αποσπάσματα ήταν τόσο λίγο ταχύτερα εξαιτίας του γεγονότος ότι δεν χρειάζεται να ψάχνει για μια μεταβλητή και στη συνέχεια να αναλύει την αξία, αλλά ποτέ δεν έχω συναντήσει ένα σενάριο όπου έκανε αρκετή διαφορά στην ύλη. Χρησιμοποιήστε ό, τι ταιριάζει στις τρέχουσες ανάγκες σας.

Διαφορά μεταξύ ενιαίας προσφοράς και διπλής προσφοράς στο php