Μετατροπή σε συμβολοσειρά php. Χειρισμός τύπων δεδομένων PHP

Παιδικά είδη 14.04.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Η PHP δεν απαιτεί (ή υποστηρίζει) ρητό ορισμό τύπου όταν δηλώνει μια μεταβλητή. ο τύπος μιας μεταβλητής καθορίζεται ανάλογα με το πλαίσιο στο οποίο χρησιμοποιείται. Δηλαδή, εάν αντιστοιχίσετε μια τιμή συμβολοσειράς στο $var , το $var θα γίνει συμβολοσειρά. Εάν στη συνέχεια αντιστοιχίσετε στο $var μια ακέραια τιμή, γίνεται ακέραιος.

Ένα παράδειγμα αυτόματης μετατροπής τύπου είναι ο τελεστής προσθήκης " + ". Εάν κάποιος από τους τελεστές είναι αριθμός κινητής υποδιαστολής, τότε όλοι οι τελεστές ερμηνεύονται ως αριθμοί κινητής υποδιαστολής, το αποτέλεσμα θα είναι επίσης ένας αριθμός κινητής υποδιαστολής. Διαφορετικά, οι τελεστές θα ερμηνεύονται ως ακέραιοι και το αποτέλεσμα θα είναι επίσης ένας αριθμός ακέραιος αριθμός Σημειώστε ότι αυτό ΔΕΝ αλλάζει τους τύπους των ίδιων των τελεστών Μερικά πρακτικά παραδείγματα.

$foo = "0" ; // Το $foo είναι μια συμβολοσειρά (ASCII 48)
$foo += 2 ; // Το $foo είναι τώρα ένας ακέραιος αριθμός (2)
$foo = $foo + 1,3 ; // Το $foo είναι πλέον float (3.3)
$foo = 5 + "10 Μικρά Γουρουνάκια" ; // Το $foo είναι ακέραιος αριθμός (15)
$foo = 5 + "10 μικρά γουρούνια" ; // Το $foo είναι ακέραιος αριθμός (15)
?>

Εάν θέλετε να δοκιμάσετε οποιοδήποτε από τα παραδείγματα που δίνονται σε αυτήν την ενότητα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση var_dump() .

Προσοχή: -1 μετράει ΑΛΗΘΗΣ, όπως κάθε μη μηδενικός (αρνητικός ή θετικός) αριθμός!

Παραδείγματα μετασχηματισμών:

var_dump ((bool) "" ); //bool(false)
var_dump ((bool) 1 ); //bool(true)
var_dump ((bool) - 2 ); //bool(true)
var_dump ((bool) "foo" ); //bool(true)
var_dump ((bool) 2.3e5 ); //bool(true)
var_dump ((bool) πίνακας(12 )); //bool(true)
var_dump((bool) array()); // bool(false)
var_dump ((bool) "false" ); //bool(true)
?>

Μετατροπή από Boolean

ΨΕΥΔΗΣμετατρέπεται σε 0 (μηδέν) και ΑΛΗΘΗΣ- σε 1 (μονάδα).

Μετατροπή από Float

Κατά τη μετατροπή από έναν αριθμό κινητής υποδιαστολής σε έναν ακέραιο, ο αριθμός θα στρογγυλοποιείται προς το μηδέν.

Εάν το float υπερβαίνει τα όρια του ακέραιου αριθμού (συνήθως +/- 2,15e+9 = 2^31), το αποτέλεσμα θα είναι απροσδιόριστο επειδή ο ακέραιος δεν έχει αρκετή ακρίβεια για να επιστρέψει το σωστό αποτέλεσμα. Σε αυτήν την περίπτωση, δεν θα εμφανιστεί καμία προειδοποίηση ή ακόμη και παρατήρηση.

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

echo (int) ((0,1 + 0,7 ) * 10 ); // εκτυπώνει 7!
?>

Μετατροπή από String

Μετατροπές από άλλους τύπους

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

Boolean ( boolean) νόημα ΑΛΗΘΗΣμετατρέπεται στη συμβολοσειρά "1" και την τιμή ΨΕΥΔΗΣαντιπροσωπεύεται ως "" ( κενή γραμμή). Με αυτόν τον τρόπο, μπορείτε να μετατρέψετε τιμές και προς τις δύο κατευθύνσεις - από Boolean σε συμβολοσειρά και αντίστροφα.

Ακέραιος αριθμός ( ακέραιος αριθμός) ή αριθμός κινητής υποδιαστολής ( φλοτέρ) μετατρέπεται σε μια συμβολοσειρά που αντιπροσωπεύεται από έναν αριθμό που αποτελείται από τα ψηφία του (συμπεριλαμβανομένου του εκθέτη για αριθμούς κινητής υποδιαστολής).

Οι πίνακες μετατρέπονται πάντα στη συμβολοσειρά "Array" , επομένως δεν μπορείτε να εμφανίσετε τα περιεχόμενα του πίνακα ( πίνακας), χρησιμοποιώντας ηχώ()ή Τυπώνω()για να δούμε τι περιέχει. Για να προβάλετε ένα μεμονωμένο στοιχείο πρέπει να κάνετε κάτι σαν echo $arr["foo"] . Δείτε παρακάτω για συμβουλές σχετικά με τον τρόπο εμφάνισης/προβολής όλου του περιεχομένου.

Τα αντικείμενα μετατρέπονται πάντα στη συμβολοσειρά "Object" . Εάν θέλετε να εκτυπώσετε την τιμή της μεταβλητής μέλους ενός αντικειμένου ( αντικείμενο) Για σκοπούς εντοπισμού σφαλμάτων, διαβάστε τις ακόλουθες παραγράφους. Εάν θέλετε να λάβετε το όνομα κλάσης του απαιτούμενου αντικειμένου, χρησιμοποιήστε το get_class() .

Οι πόροι μετατρέπονται πάντα σε συμβολοσειρές με τη δομή "Resource id #1", όπου 1 είναι ο μοναδικός αριθμός πόρου ( πόρος) του ανατέθηκε από την PHP κατά το χρόνο εκτέλεσης. Εάν θέλετε να λάβετε τον τύπο πόρου, χρησιμοποιήστε το .

ΜΗΔΕΝΙΚΟμετατρέπεται πάντα στην κενή συμβολοσειρά.

Η εκτύπωση συστοιχιών, αντικειμένων ή πόρων δεν σας παρέχει κανέναν ΧΡΗΣΙΜΕΣ ΠΛΗΡΟΦΟΡΙΕΣγια τις ίδιες τις έννοιες. Περισσότερο κατάλληλος τρόποςτιμές εξόδου για εντοπισμό σφαλμάτων - χρήση συναρτήσεων print_r()Και var_dump() .

Μπορείτε επίσης να μετατρέψετε Τιμές PHPσε χορδές για μόνιμη αποθήκευση. Αυτή η μέθοδος ονομάζεται σειριοποίηση και μπορεί να γίνει χρησιμοποιώντας τη συνάρτηση serialize(). Επιπλέον, εάν στο δικό σας Εγκατάσταση PHPΥπάρχει υποστήριξη για το WDDX, μπορείτε να σειριοποιήσετε τις τιμές PHP σε δομές XML.

Μετατροπή σε τύπο πίνακα

Για οποιονδήποτε από τους τύπους: ακέραιος αριθμός, φλοτέρ, σειρά, booleanΚαι πόροςΕάν μετατρέψετε την τιμή σε πίνακα, θα καταλήξετε σε έναν πίνακα με ένα στοιχείο (στο δείκτη 0) να είναι η βαθμωτή τιμή με την οποία ξεκινήσατε.

Εάν μετατρέψετε ένα αντικείμενο σε πίνακα ( αντικείμενο), θα λάβετε τις ιδιότητες (μεταβλητές μέλους) αυτού του αντικειμένου ως στοιχεία πίνακα. Τα κλειδιά θα είναι τα ονόματα των μεταβλητών μελών.

Εάν μετατρέψετε την τιμή σε πίνακα ΜΗΔΕΝΙΚΟ, θα λάβετε έναν κενό πίνακα.

Μετατροπή σε τύπο αντικειμένου

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

$obj = (αντικείμενο) "ciao" ;
echo $obj -> scalar ; // θα εκτυπώσει "ciao"
?>

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

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

ΣΕ PHP δουλειάμε ημερομηνία, συναντά συχνότερα το UNIX TIMESTAMP. Εδώ ο χρόνος αποθηκεύεται ως ακέραιος αριθμός. Ο υπολογισμός του χρόνου αρχίζει την 1η Ιανουαρίου 1970. Επομένως, για παράδειγμα, η ημερομηνία και η ώρα 12/11/2014 19:40:00 θα αντιπροσωπευόταν με τον αριθμό 1418316000. Αυτός ο αριθμός δείχνει πόσα δευτερόλεπτα έχουν περάσει από την ημερομηνία μηδέν της 1ης Ιανουαρίου 1970, που ονομάζεται Εποχή Unix.

Ένα παράδειγμα σελίδας PHP που παρέχει δυνατότητες μετατροπής δεδομένων παρουσιάζεται στον ιστότοπο στην ενότητα προγραμμάτων με το πρόγραμμα "Μετατροπή μορφής ημερομηνίας και ώρας". Εδώ μπορείτε να δημιουργήσετε την επιθυμητή ημερομηνία σε μορφή UNIX TIMESTAMP, καθώς και να μεταφέρετε αυτήν τη μορφή σε μια τυπική, αναγνώσιμη από τον άνθρωπο μορφή.

Λήψη της τρέχουσας ώρας και ημερομηνίας στην PHP

Για να λάβετε την τρέχουσα ώρα διακομιστή, χρησιμοποιήστε τη λειτουργία

int time (άκυρο)

που θα επιστρέψει την τιμή σε μορφή timestamp unix.

echo time(); // εξαγωγή της τρέχουσας ώρας σε μορφή timestamp unix

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

Μετατροπή μορφής ημερομηνίας και ώρας σε PHP

Ο απλούστερος μηχανισμός για τη μετατροπή μιας αριθμητικής τιμής ημερομηνίας σε πιο κατανοητές τιμές παρέχεται από τη συνάρτηση:

array getdate()

Επιστρέφει έναν συσχετιστικό πίνακα που περιέχει πληροφορίες ημερομηνίας. Εάν δεν έχει καθοριστεί η παράμετρος χρονικής σήμανσης, θα επιστραφεί η τρέχουσα ώρα. Αυτός ο πίνακας περιέχει τις ακόλουθες τιμές:

Ο πίνακας που προκύπτει σάς επιτρέπει να εμφανίσετε τις τιμές στην επιθυμητή μορφή:

$ημερομηνία = 1418372345;
$date_mas = getdate($date);
echo $date_mas["mday" ] . ". ". $date_mas["mon" ] . ". ". $date_mas["year" ]; // 12.12.2014


Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία για να μετατρέψετε τη μορφή ημερομηνίας και ώρας:

ημερομηνία συμβολοσειράς (string $template [, int $unix_timestamp])

Έχει σχεδιαστεί για να εισάγει την τρέχουσα ημερομηνία χρονοσήμανσης unix στην απαιτούμενη μορφή. Η παράμετρος συμβολοσειράς $template καθορίζει τη μορφή εξόδου. Η παράμετρος $unix_timestamp μπορεί να χρησιμοποιηθεί για να καθορίσετε ποια χρονική τιμή θα εργαστείτε. Είναι προαιρετικό, οπότε αν δεν προσδιορίζεται θα χρησιμοποιηθεί Η τρέχουσα ημερομηνίακαι του χρόνου.

Η μορφή καθορίζεται από τις ακόλουθες τιμές:

ένα"πριν" και "μετά" το μεσημέρι: "πμ" ή "μμ"
ΕΝΑ«πριν» και «μετά» το μεσημέρι με κεφαλαία γράμματα: "Π.μ. ή μ.μ"
ρεημέρα του μήνα με 2 ψηφία (αν είναι μικρότερο από 10, το μηδέν έρχεται πρώτο) (01 έως 31)
ρεημέρα της εβδομάδας με 3 γράμματα. Για παράδειγμα, "Δευτέρα" (Δευτέρα)
ιημέρα του μήνα, 1-2 ψηφία χωρίς αρχικά μηδενικά (από 1 έως 31)
φάόνομα του μήνα. Για παράδειγμα, "Ιανουάριος"
ηώρα, 12ωρη μορφή (01 έως 12)
Hώρα, 24ωρη μορφή (00 έως 23)
σολμορφή ώρας, 12 ωρών χωρίς μηδενικά (1 έως 12)
σολωριαία, 24ωρη μορφή χωρίς μηδενικά (0 έως 23)
Εγώλεπτά (00 έως 59)
I (κεφαλαίο i)1 εάν ισχύει η θερινή ώρα, διαφορετικά 0
μεγάλο1 εάν το έτος είναι δίσεκτο ή 0 εάν δεν είναι δίσεκτο έτος
σιώρα σε μορφή ώρας Διαδικτύου ( εναλλακτικό σύστημααντίστροφη μέτρηση ώρας της ημέρας) (από 000 έως 999)
Τζώνη ώρας υπολογιστή. Για παράδειγμα, MDT
l (πεζό L)ημέρα της εβδομάδας. Για παράδειγμα, "Δευτέρα"
Μμήνας, δύο ψηφία με μηδενικά (01 έως 12)
nμήνας, ένα ή δύο ψηφία χωρίς μηδενικά (από 1 έως 12)
Μσυντομευμένο όνομα του μήνα. Για παράδειγμα, "Jan"
tαριθμός ημερών στον καθορισμένο μήνα (από 28 έως 31)
μικρόδευτερόλεπτα (0 έως 59)
μικρόΑγγλικό επίθημα τακτικού αριθμού δύο γραμμάτων ("st", "nd", "rd" ή "th")
Uακέραιος αριθμός δευτερολέπτων από την έναρξη της εποχής του UNIX
yέτος, ψηφιακό, 2 ψηφία (14)
Υέτος, ψηφιακό, 4ψήφιο (2014)
zτακτικός αριθμός της ημέρας του έτους (από 0 έως 365)
Ζμετατόπιση ζώνης ώρας σε δευτερόλεπτα (από -43200 έως 43200)
Νσειριακός αριθμός της ημέρας της εβδομάδας από 1 (Δευτέρα) έως 7 (Κυριακή) σύμφωνα με το πρότυπο ISO-8601, (προστέθηκε στο εκδόσεις PHP 5.1.0)
wαύξων αριθμός της ημέρας της εβδομάδας από 0 (Κυριακή) έως 6 (Σάββατο)
Wσειριακός αριθμός της εβδομάδας του έτους σύμφωνα με το πρότυπο ISO-8601· οι εβδομάδες ξεκινούν τη Δευτέρα (προστέθηκε στην PHP 4.1.0)
οαριθμός έτους σύμφωνα με το πρότυπο ISO-8601. Έχει την ίδια έννοια με το Y, εκτός εάν ο αριθμός της εβδομάδας ISO (W) είναι από το προηγούμενο ή το επόμενο έτος. τότε θα χρησιμοποιηθεί το έτος εκείνης της εβδομάδας. (προστέθηκε στην PHP 5.1.0)
μικωδικός κλίμακας ζώνης ώρας. Για παράδειγμα: UTC, GMT, Atlantic/Azores (προστέθηκε στην PHP 5.1.0)
Οδιαφορά με την ώρα του Γκρίνουιτς, σε ώρες. Για παράδειγμα: +0200
Πδιαφορά από τη μέση ώρα του Γκρίνουιτς με άνω και κάτω τελεία μεταξύ ωρών και λεπτών. Για παράδειγμα: +02:00 (προστέθηκε στην PHP 5.1.3)
ντοημερομηνία σε τυπική μορφή ISO 8601 Για παράδειγμα, 2014-12-15:19:21+00:00 (προστέθηκε σε PHP 5)
rημερομηνία σε » μορφή RFC 2822 Για παράδειγμα: Πέμ, 21 Δεκεμβρίου 2000 16:01:07 +0200.
Uαριθμός δευτερολέπτων που έχουν περάσει από την αρχή της Εποχής Unix (The Unix Epoch, 1 Ιανουαρίου 1970 00:00:00 GMT)

Όπως μπορείτε να δείτε από τη λίστα, μπορείτε να λάβετε πολλά χρήσιμα δεδομένα ημερομηνίας χρησιμοποιώντας αυτήν τη λειτουργία. Για παράδειγμα:

$ημερομηνία = 1418372345; // αρχική ημερομηνία και ώρα 12/12/2014 11:19:05

echo date("d.m.Y" , $date); // 12/12/2014 (ημερομηνία)
echo date("H:i:s" , $date); // 11:19:05 (ώρα)
echo date("H:i" , $date); // 11:19 (ώρα)
echo date("t" , $date); // 31 (αριθμός ημερών σε ένα μήνα)
echo date("z" , $date); // 345 (τακτικός αριθμός της ημέρας του έτους)
echo date("l dS \of F Y h:i:s A" , $date); // Παρασκευή 12 Δεκεμβρίου 2014 11:19:05 π.μ

Οι άλλοι χαρακτήρες που περιλαμβάνονται στο μοτίβο θα εκτυπωθούν όπως είναι στη γραμμή. Εάν πρέπει να εισαγάγετε έναν χαρακτήρα που χρησιμοποιείται σε μια συνάρτηση ως κωδικός μορφής, ο χαρακτήρας "\" εισάγεται μπροστά τους. Για την τιμή "\n" (ο χαρακτήρας μετάβασης νέα γραμμή), θα πρέπει να καθορίσετε "\\n". Έτσι, μπορείτε να εξάγετε ένα ολόκληρο μήνυμα που περιέχει πληροφορίες ημερομηνίας και ώρας:

ημερομηνία ηχούς ( "Σήμερα z-η ημέρα Y έτος", $date); // Σήμερα είναι η 345η ημέρα του 2014

Μετατροπή ημερομηνίας και ώρας σε μορφή χρονικής σφραγίδας

Για αντίστροφη μετατροπήχρονολογείται απο τυπική μορφήΗ συνάρτηση εφαρμόζεται στην τιμή της αριθμητικής χρονικής σφραγίδας:

int mktime(]]]]]]

Η συνάρτηση mktime() επιστρέφει την τιμή χρόνου Unix που αντιστοιχεί στην ημερομηνία και ώρα που καθορίζονται από τα ορίσματά της. Για παράδειγμα:

$my_date = mktime(10, 30, 0, 12, 12, 2014);

Θα πρέπει να προσέχετε τη σειρά των ορισμάτων της συνάρτησης: ώρες, λεπτά, δευτερόλεπτα, μήνας, ημέρα, έτος.

Εκτός από την απλή δημιουργία μιας τιμής ημερομηνίας σε μια χρονική σήμανση, η συνάρτηση mktime() μπορεί να χρησιμοποιηθεί για την αριθμητική απόδοση με ημερομηνίες. Για να το κάνετε αυτό, μπορείτε απλώς να εισαγάγετε τα απαραίτητα ορίσματα. Για παράδειγμα, εάν καθορίσετε τον 14ο μήνα, τότε στην τελική τιμή ο μήνας θα είναι ο 2ος και η τιμή του έτους θα αυξηθεί κατά ένα:

$my_day = 12;
$my_month = 12;
$my_year = 2014;

$new_date = mktime(0, 0, 0, $my_month + 5, $my_day, $my_year);

echo date("d.m.Y" , $new_date); // 05/12/2015 (ημερομηνία)

Μπορείτε να κάνετε το ίδιο με άλλες παραμέτρους.

Έλεγχος εγκυρότητας ημερομηνίας στην PHP

Όταν εργάζεστε με ημερομηνίες, ειδικά όταν δημιουργείτε μια ημερομηνία χρησιμοποιώντας τη συνάρτηση mktime() που προτείνεται παραπάνω, είναι απαραίτητο να λάβετε υπόψη την ορθότητα της καταχωρημένης ημερομηνίας. Για να γίνει αυτό, η PHP χρησιμοποιεί τη συνάρτηση:

bool check date (int μήνας, int day, int year)

Επιστρέφει true εάν η ημερομηνία που καθορίζεται από τα ορίσματα είναι σωστή. αλλιώς επιστρέφει ψευδής. Η ημερομηνία θεωρείται σωστή εάν:

Έτος στην περιοχή από 1 έως 32767.

Ο μήνας κυμαίνεται από 1 έως 12.

Η ημέρα για έναν δεδομένο μήνα, λαμβάνοντας υπόψη τα δίσεκτα έτη, είναι σωστή.

Παράδειγμα ελέγχου ημερομηνίας:

$my_day = 32;
$my_month = 12;
$my_year = 2014;

if (!checkdate($my_month, $my_day, $my_year))
ηχώ "Σφάλμα: η ημερομηνία είναι λανθασμένη";

Οι πληροφορίες αντιπροσωπεύονταν πάντα με σύμβολα. Μόνο όταν εμφανίστηκε ο προγραμματισμός έγινε εν μέρει γράμματα, αριθμοί και σημάδια (με την τυπική έννοια).

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

Συμβολοσειρές και αριθμοί

Οι χορδές είναι, πρώτα απ 'όλα, συλλογές διαφόρων χαρακτήρων. Σε διάφορα εργαλεία προγραμματισμού κλάσμαχωρίζεται από το σύνολο με διαφορετικούς τρόπους. Κάποιοι προτιμούσαν τελεία, άλλοι κόμμα (στην PHP, η μετατροπή μιας συμβολοσειράς σε αριθμό σημαίνει "."). Οι τριάδες χωρίζονταν με ένα μόνο απόστροφο, κόμμα ή κενό. Οι πραγματικοί αριθμοί γράφτηκαν με το γράμμα «Ε».

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

Αλλά ο κόσμος των μεταβλητών ενός συγκεκριμένου τύπου (για προγράμματα πρώιμης εποχής) και η εφαρμογή της σύγχρονης ιδέας της συναίνεσης όλων των τύπων δεδομένων σημαίνει: στην PHP, η μετατροπή μιας συμβολοσειράς σε αριθμό είναι το ίδιο με το να μην κάνεις τίποτα. Στην καλύτερη περίπτωση, η PHP θα "κόψει", ή μάλλον, θα κάνει 0 ή έναν αριθμό, εάν υπάρχει τουλάχιστον ένα ψηφίο στη συμβολοσειρά πηγής. Όλα τα ψηφία μέχρι τον πρώτο μη-ψήφιο χαρακτήρα θα αθροίζονται σε αυτόν τον αριθμό.

Γενικός κανόνας μετατροπής

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

Οποιοσδήποτε μη αριθμητικός χαρακτήρας στην ακολουθία αριθμών σταματά τη διαδικασία και το αποτέλεσμα της μετατροπής συμβολοσειράς σε αριθμό της PHP θα είναι μόνο η τιμή που σχηματίστηκε πριν από τον πρώτο μη αριθμητικό χαρακτήρα.

Μαθηματικά και επεξεργασία συμβόλων

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

Συνήθως επάνω Η συμβολοσειρά PHP μετατρέπεται σε αριθμό αυτόματα, αλλά δεν είναι ποτέ κακή ιδέα να το ελέγξετε. Είναι καλύτερο να είστε πάντα σίγουροι ότι η PHP κατανοεί σωστά ότι μια δεδομένη μεταβλητή είναι ένας αριθμός. Εάν υπάρχει έστω και μια σκιά αμφιβολίας, θα πρέπει να καθορίσετε ρητά τον τύπο της μεταβλητής (int) ή (float) πριν από την τιμή και να ελέγξετε πώς η PHP κατανοεί τον τύπο μεταβλητές συναρτήσεις is_integer() ή is_float().

Σύγχρονες τάσεις προγραμματισμού

Η κλασική ερμηνεία του προβλήματος "string to number" της PHP βρίσκεται μέσα στις αναπαραστάσεις σύγχρονο προγραμματισμό. Αντίστροφη διαδικασίαέχει σημαντικά περισσότερες διαφορετικές επιλογές. Λειτουργίες number_format(), printf(), sprintf() μπορούν να κάνουν θαύματα, όχι μόνο στο επίπεδο ενός αριθμού, αλλά και σε μια ομάδα αριθμών.

Μετατροπή σε PHP" γραμμή προς αριθμό" δείχνει, μάλλον, ότι μπορούμε να το κάνουμε και αυτό, αλλά το mτα μαθηματικά και οι αριθμητικοί υπολογισμοί δεν είναι το δυνατό μας σημείο.

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

Οι ακέραιοι αριθμοί δεν έχουν προτεραιότητα έναντι των πραγματικών αριθμών, αλλά προορίζονται για έναν κυρίως «μη ψηφιακό» σκοπό. Ένας ακριβής αριθμός με συγκεκριμένο αριθμό ψηφίων και/ή σε συγκεκριμένο εύρος τιμών έχει νόημα για τη δημιουργία κανόνων CSS, μπορεί να χρησιμοποιηθεί ως κλειδί πίνακα ή μοναδικό αναγνωριστικό για μια καταχώρηση γραμμής πίνακα βάσης δεδομένων. Ο ακέραιος μπορεί να είναι μέρος ενός μοναδικού κωδικού, ενός κωδικού πρόσβασης ή άθροισμα ελέγχουκατά τη μεταφορά δεδομένων. Ένας ακέραιος αριθμός απέχει πολύ από το να είναι θέμα μαθηματικών και αριθμητικών μεθόδων, είναι συχνά στοιχείο ενός δεδομένων ή του κώδικά του.

Η σημασία της συνάρτησης intval().

Η συνάρτηση intval() PHP χρησιμοποιείται για τη μετατροπή μιας «μεταβλητής σε ακέραιο» και έχει δύο παραμέτρους και διπλή σημασία.

Η δεύτερη παράμετρος είναι η βάση του απαιτούμενου συστήματος αριθμών. Η προεπιλογή είναι μετρικό σύστημα. Εάν δεν καθορίσετε τη δεύτερη παράμετρο, τότε ένας αριθμός που αρχίζει με τον χαρακτήρα "0" θεωρείται οκταδικός και εκείνοι που ξεκινούν με τον χαρακτήρα "0x" θεωρούνται δεκαεξαδικοί.

Η δεύτερη παράμετρος έχει μια τιμή εάν η πρώτη παράμετρος είναι μια συμβολοσειρά χαρακτήρων.

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

Η λογική πίσω από τη συνάρτηση intval της PHP είναι η μετατροπή μιας συμβολοσειράς ή ενός αριθμού σε έναν ακέραιο για Πρακτική εφαρμογη. Για παράδειγμα, φόρμα Κανόνας CSS, το οποίο χρησιμοποιεί μόνο ακέραιους αριθμούς. Μετατρέψτε έναν πραγματικό αριθμό σε ακέραιο αφαιρώντας απλώς μόνο το ακέραιο μέρος.

Χρησιμοποιώντας τη συνάρτηση intval().

Η συνάρτηση intval() στην PHP δεν είναι η μόνη για το σκοπό της λήψης ακέραιου αριθμού. Μπορείτε να χρησιμοποιήσετε round(), ceil() και floor(). Αυτές οι συναρτήσεις λειτουργούν με γενικά αποδεκτή λογική στρογγυλοποίησης.

Η συνάρτηση intval() PHP στερείται λογικής και λειτουργεί με βάση την αρχή της λήψης ακέραιου αριθμού. Εάν απαιτείται, τότε για τον σωστό λόγο το απαιτούμενο σύστημαΥπολογισμός.

Τα παραδείγματα της intval() PHP δείχνουν ότι η κύρια περιοχή εφαρμογής της είναι η λογική του αλγορίθμου και όχι η λογική των υπολογισμών.



Συνιστούμε να διαβάσετε

Μπλουζα