Οι δηλώσεις τύπων στην PHP παρέχουν ελέγχους τύπων κατά τον χρόνο εκτέλεσης για ορίσματα συναρτήσεων, τιμές επιστροφής και ιδιότητες κλάσεων.
Στις συναρτήσεις, μπορεί να προστεθεί ένας τύπος επιστροφής void για να δηλωθεί ότι η συνάρτηση δεν επιστρέφει καμία τιμή.
Οι δηλωμένοι τύποι λειτουργούν επίσης ως έλεγχοι κατά τον χρόνο εκτέλεσης ότι οι συναρτήσεις επιστρέφουν μια τιμή με λογικό τύπο.
<?php
class Driver
{
private int $serial_number;
public function setSerialNumber(int $number): void
{
$this->serial_number = $number;
}
public function getSerialNumber(): int
{
return $this->serial_number;
}
}
$driver = new Driver();
$driver->setSerialNumber("Version 1b"); // This will throw a TypeError
Αν ένα όρισμα συνάρτησης, μια τιμή επιστροφής ή μια ιδιότητα κλάσης μπορεί να είναι περισσότερων από έναν τύπων, μπορεί να δηλωθεί μια ένωση τύπων.
<?php
class IdentityCard
{
private int|null $id = null;
public function assign(int|float $id): void
{
$this->id = intval($id);
}
}
$card = new IdentityCard();
$card->assign(5.0);
Όταν δουλεύουμε με κώδικα, μπορεί να μην μπορούμε να προσδιορίσουμε έναν τύπο.
Από την PHP 8.0 και μετά, παρέχεται ένας τύπος διαφυγής με το όνομα mixed.
Το mixed ισοδυναμεί με μια ένωση τύπων των object|resource|array|string|float|int|bool|null.
Δουλεύεις στο γραφείο του δήμου εδώ και καιρό και έχεις φτιάξει ένα σύνολο εργαλείων που κάνουν πιο γρήγορη την καθημερινή σου δουλειά, για παράδειγμα όταν συμπληρώνεις φόρμες.
Τώρα έρχεται ένας νέος συνάδελφος να δουλέψει μαζί σου και συνειδητοποίησες ότι τα εργαλεία σου μπορεί να μην είναι αυτονόητα. Υπάρχουν πολλές περίεργες συνήθειες στο γραφείο σου, όπως το να συμπληρώνεις πάντα τις φόρμες με κεφαλαία γράμματα και να αποφεύγεις να αφήνεις πεδία κενά.
Ως πρώτο βήμα, αποφασίζεις να προσθέσεις δηλώσεις τύπων της PHP, ώστε ο νέος σου συνάδελφος να μπει αμέσως στο κλίμα και να αρχίσει να χρησιμοποιεί τα εργαλεία σου.
Address
Πρόσθεσε δηλώσεις τύπου ιδιοτήτων σε καθεμία από τις δηλωμένες ιδιότητες της κλάσης Address.
Κάθε ιδιότητα της κλάσης πρέπει να δηλωθεί ως συμβολοσειρά.
Πρόσθεσε μια δήλωση τύπου παραμέτρου και μια δήλωση τύπου επιστροφής στη μέθοδο blanks της κλάσης Form.
Η μέθοδος πρέπει να δέχεται ένα ακέραιο μήκος και να επιστρέφει μια συμβολοσειρά που αναπαριστά την κενή γραμμή.
Πρόσθεσε μια δήλωση τύπου παραμέτρου και μια δήλωση τύπου επιστροφής στη μέθοδο letters της κλάσης Form.
Η μέθοδος πρέπει να δέχεται μια συμβολοσειρά, που αναπαριστά λέξεις, και να επιστρέφει έναν πίνακα με γράμματα.
Πρόσθεσε δηλώσεις τύπων παραμέτρων και μια δήλωση τύπου επιστροφής στη μέθοδο checkLength της κλάσης Form.
Η μέθοδος πρέπει να δέχεται μια συμβολοσειρά, δηλαδή μια λέξη, και έναν ακέραιο, το μέγιστο μήκος, και να επιστρέφει μια τιμή αληθή ή ψευδή.
Πρόσθεσε μια δήλωση τύπου παραμέτρου, αξιοποιώντας την κλάση Address που ενημέρωσες προηγουμένως, και μια δήλωση τύπου επιστροφής στη μέθοδο formatAddress της κλάσης Form.
Η μέθοδος πρέπει να δέχεται ένα Address και να επιστρέφει μια μορφοποιημένη συμβολοσειρά.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις PHP με 11 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.