Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

Κοινή Bugs PHP

Υπάρχουν πολλά σφάλματα κοινή PHP προγραμματιστές που εισάγουν όταν γράφετε κώδικα PHP . Μερικά από τα σφάλματα προκαλούν μηνύματα λάθους από τον διερμηνέα , αλλά τα μηνύματα λάθους συχνά δεν σχετίζονται με την πραγματική σφάλμα και ενδέχεται να οδηγούν σε μια εντελώς διαφορετική γραμμή στο σενάριο . Άλλα σφάλματα δεν προκαλούν κανένα μήνυμα λάθους σε όλα, αλλά να προκαλέσει το πρόγραμμα να συμπεριφέρεται διαφορετικά από ό, τι προβλεπόταν. Είναι χρήσιμο να επανεξετάσει αυτά τα κοινά σφάλματα , επειδή αυτά τα λάθη που γίνονται από αρχάριους και έμπειρους προγραμματιστές ίδια. Χρησιμοποιώντας ένα χειριστή Εκχώρηση σε όρους Έκφραση
Η

Το σύμβολο ισότητας αποτελεί φορέα ανάθεσης σε PHP . Για παράδειγμα , η ακόλουθη δήλωση εκχωρεί την τιμή των πέντε στη μεταβλητή $ x :

$ x = 5 ?

Δύο ίσες σημάδια κάνουν μαζί ένα όρους εκμετάλλευσης . Για παράδειγμα , η ακόλουθη δήλωση εκχωρεί την τιμή τρία στη μεταβλητή $ y , αν η μεταβλητή $ x είναι ίσο με πέντε :

if ( $ x == 5 ) $ y = 3 ?

Μια κοινή PHP bug είναι να παραλείψετε ένα από τα σύμβολα ισότητας στην έκφραση υπό συνθήκη . Αυτό προκαλεί το διερμηνέα να εκτελέσει μια εργασία και στη συνέχεια υπό όρους αξιολόγησης σχετικά με το αποτέλεσμα της εργασίας , για την οποία κάθε μη μηδενική τιμή θα υπολογιστεί Για παράδειγμα, εξετάστε την ακόλουθη δήλωση « αλήθεια ». :

if ( $ x = 5 ) $ y = 3 ?

η μεταβλητή $ y θα είναι πάντα ίσο με το τρία , γιατί η αξία πέντε αποδίδεται σε αυτά, αντί σε σύγκριση με , η μεταβλητή $ x . Από πέντε είναι μη μηδενική , το αποτέλεσμα θα αξιολογήσει πάντα σε "true ".
Εικόνων Παράλειψη ενός Ακολουθίας Παράθεση Από String
Η

Μια άλλη κοινή PHP bug συμβαίνει όταν δεν κλείνουν σωστά ένα string με ένα απόσπασμα trailing . Είναι εύκολο να το κάνετε αυτό , ειδικά αν είστε ανάμειξη μονά και διπλά εισαγωγικά στην ίδια σειρά . Είναι μερικές φορές δύσκολο να εντοπισθεί η πηγή αυτού του bug , διότι το μήνυμα λάθους μπορεί να είναι αρκετά διαφορετικό από το πραγματικό πρόβλημα , και ο διερμηνέας συχνά οφείλεται σε μια γραμμή που είναι αρκετές γραμμές παρελθόν, όπου το πραγματικό πρόβλημα είναι . Αυτό συμβαίνει επειδή ο διερμηνέας συνεχίζει να προσπαθεί και να επεξεργαστεί τον κώδικα , παρά το απόσπασμα που λείπει . Ας εξετάσουμε το ακόλουθο σενάριο :

ο κωδικός αυτός θα δημιουργήσει ένα « απροσδόκητο T_STRING "σφάλμα που δείχνει τη γραμμή που περιέχει το " εάν " δήλωση, η οποία είναι δύο γραμμές κάτω από την οποία προκύπτει το πραγματικό πρόβλημα .

Η Ξεχνώντας το " $ " κατά την εναλλαγή μεταξύ γλωσσών
Η

προγράμματα PHP συχνά έχουν τόσο σήμανσης HTML και JavaScript κώδικα διάσπαρτες με την PHP script . Κατά την εναλλαγή μεταξύ PHP και JavaScript , είναι εύκολο να ξεχάσουμε τη γλώσσα που χρησιμοποιείτε και να υιοθετήσουν τα πρότυπα του λάθος γλώσσα scripting . Ένα κοινό λάθος είναι να παραλείψετε το σύμβολο του δολαρίου μπροστά σε μια μεταβλητή της PHP , δεδομένου ότι απαιτείται PHP , αλλά όχι σε JavaScript . Για παράδειγμα, η ακόλουθη δέσμη ενεργειών παραλείπει το σύμβολο του δολαρίου από τη μεταβλητή "i " στο " για " βρόχο μετά το απόσπασμα JavaScript κώδικα :

για ( i = 0 ? i <25 ​​? i + + ) { διαδικασία (στοιχείο [ i ] ) ? } ? > Τα σημεία διερμηνέα στη γραμμή με το σφάλμα , αλλά εκδίδει το μήνυμα λάθους "unexpected '= ' , περιμένοντας ' ? ' "

Η Συμπεριλαμβανομένων μια τελεία μετά από ένα " Αν " Line
Η

Δεδομένου ότι οι περισσότερες γραμμές σε PHP τέλος σε ένα ερωτηματικό , μια κοινή PHP bug πρέπει να περιλαμβάνει ένα ερωτηματικό μετά από μια γραμμή με ένα " if" . Αυτό μπορεί να είναι ένα δύσκολο bug για να εντοπιστούν επειδή δεν προκαλεί ένα μήνυμα λάθους . Για παράδειγμα , το παρακάτω script θα επαναλάβω πάντα "Low την απογραφή ! ", Λόγω της ερωτηματικό στο τέλος της γραμμής με την " if" . Το ερωτηματικό εξαλείφει αποτελεσματικά την υπό όρους έκφραση , διότι τερματίζει το " if", χωρίς να αξιολογείται μια έκφραση

Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα