Διαδρομές
/
PHP
PHP
/
Ασκήσεις
/
Γραφείο πόλης
Γραφείο πόλης

Γραφείο πόλης

Άσκηση εκμάθησης

Εισαγωγή

Δήλωση τύπων

Οι δηλώσεις τύπων στην 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, ώστε ο νέος σου συνάδελφος να μπει αμέσως στο κλίμα και να αρχίσει να χρησιμοποιεί τα εργαλεία σου.

1. Δήλωσε τους τύπους για την κλάση Address

Πρόσθεσε δηλώσεις τύπου ιδιοτήτων σε καθεμία από τις δηλωμένες ιδιότητες της κλάσης Address. Κάθε ιδιότητα της κλάσης πρέπει να δηλωθεί ως συμβολοσειρά.

2. Δήλωσε τους τύπους για να συμπληρώσεις τη φόρμα με κενές τιμές

Πρόσθεσε μια δήλωση τύπου παραμέτρου και μια δήλωση τύπου επιστροφής στη μέθοδο blanks της κλάσης Form. Η μέθοδος πρέπει να δέχεται ένα ακέραιο μήκος και να επιστρέφει μια συμβολοσειρά που αναπαριστά την κενή γραμμή.

3. Δήλωσε τον τύπο όταν χωρίζεις μια τιμή σε ξεχωριστά γράμματα

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

4. Δήλωσε τον τύπο όταν ελέγχεις αν μια τιμή χωράει σε μια φόρμα

Πρόσθεσε δηλώσεις τύπων παραμέτρων και μια δήλωση τύπου επιστροφής στη μέθοδο checkLength της κλάσης Form. Η μέθοδος πρέπει να δέχεται μια συμβολοσειρά, δηλαδή μια λέξη, και έναν ακέραιο, το μέγιστο μήκος, και να επιστρέφει μια τιμή αληθή ή ψευδή.

5. Δήλωσε τον τύπο όταν μορφοποιείς μια διεύθυνση στη φόρμα

Πρόσθεσε μια δήλωση τύπου παραμέτρου, αξιοποιώντας την κλάση Address που ενημέρωσες προηγουμένως, και μια δήλωση τύπου επιστροφής στη μέθοδο formatAddress της κλάσης Form. Η μέθοδος πρέπει να δέχεται ένα Address και να επιστρέφει μια μορφοποιημένη συμβολοσειρά.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
PHP Exercism

Έτοιμος να ξεκινήσεις την άσκηση Γραφείο πόλης;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις PHP με 11 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.