γλώσσες προγραμματισμού , κατά κανόνα , δεν μπορεί να είναι "πολύ " ή " αδύναμα " δακτυλογραφημένες . Σε μια έντονα δακτυλογραφημένη γλώσσα , μεταβλητές έχουν ρητή τύπου --- όπως " ακέραιο" ή "string ". PHP είναι ένα ασθενώς δακτυλογραφημένη γλώσσα? Η μεταβλητή " $ var1 = 1,0 " μπορεί να αντιμετωπιστεί με έναν ακέραιο αριθμό κινητής υποδιαστολής ( αν πολλαπλασιάζεται με ένα δεκαδικό , για παράδειγμα) ή συμβολοσειρά (" ". , Όταν ενωθούν με τον φορέα) ανάλογα με το πώς χρησιμοποιείται . PHP κάνει πολύ λίγα μεταβλητό έλεγχο , το οποίο γενικά είναι χρήσιμη διότι παρέχει πρόσθετη ευελιξία και εξαλείφει την ανάγκη για τη χύτευση . Από την άλλη πλευρά , σε ορισμένες περιπτώσεις , αυτό μπορεί να προκαλέσει απροσδόκητη συμπεριφορά στον προγραμματισμό σας .
Εικόνων τιμές String και Casting
Η
PHP υποστηρίζει τη χρήση της χύτευσης --- μετατροπή μια μεταβλητή ρητά από το ένα είδος στο άλλο --- συμπεριλαμβάνοντας το είδος της μεταβλητής σε παρενθέσεις πριν η μεταβλητή αρχικοποιείται . Για παράδειγμα , " $ var2 = (string) $ var1 " προετοιμάζει " $ var2 " ως ρητή κορδόνι . PHP επιτρέπει επίσης on-the - fly χύτευσης σειρά με τη χρήση του " strval ( ) " λειτουργία: ο κωδικός " $ VAR3 = true " δημιουργεί " $ VAR3 » ως μεταβλητή Boolean . " strval ( VAR3 $ ) " θα αντιμετωπίσει το ίδιο Boolean μεταβλητή ως μια σειρά, όπως σε συγκρίσεις συμβολοσειρών ή πράξεις συμβολοσειράς .
Η Συγκρίσεις String
Η
Μερικές φορές , αδύναμο πληκτρολόγηση της PHP μπορεί να γίνει ένα πρόβλημα . Για παράδειγμα, σκεφτείτε την περίπτωση του " $ var1 = 1.0 ? $ Var2 = 1 ? . " Μια σύγκριση PHP μεταξύ των δύο μεταχειρίζεται ως ίσους : if ( $ var1 == $ var2 ) θα επιστρέψει « αλήθεια», επειδή, από προεπιλογή PHP τους μεταχειρίζεται σαν αριθμούς . Αυτό εξακολουθεί να ισχύει ακόμη και αυτοί είναι τυλιγμένο σε strval ( ) λειτουργίες: εάν ( strval ( $ var1 ) == strval ( $ var2 ) ) θα επιστρέψει " αλήθεια ". Να συγκριθούν με ακρίβεια αυτές τις δύο σειρές σε συνάρτηση PHP , χρησιμοποιήστε το " === " σύγκριση : if ( $ var1 === $ var2 ) θα επιστρέψει " false ".
Εικόνων αντικείμενα όπως Χορδές
προθυμία της PHP για τη μετατροπή μεταβλητών on-the - fly , επίσης, μπορεί να προκαλέσει προβλήματα κατά τη χρήση αντικειμένων . Για παράδειγμα, σκεφτείτε ένα έγγραφο XML που περιέχει την ίδια σειρά ( για παράδειγμα , ένα όνομα όπως " John Doe " ) σε δύο μέρη . Εάν τοποθετήσετε το καθένα σε μια μεταβλητή με ενσωματωμένο " simplexml " βιβλιοθήκη της PHP , η σύγκριση μεταξύ των δύο μεταβλητών θα επιστρέψει " false" , ακόμη και αν η τιμή της συμβολοσειράς είναι πανομοιότυπη , επειδή κάθε μεταφέρει πληροφορίες για την ιεραρχία των XML και οι δύο είναι τεχνικά διαφορετικά επειδή βρίσκονται σε διαφορετικά μέρη του αρχείου XML . Σε αυτή την περίπτωση , strval ( ) θα έρθει στη διάσωση , επιστρέφοντας μόνο το string , χωρίς πρόσθετες πληροφορίες κόμβο .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα