PHP: validazione dei parametri del costruttore di una classe

In PHP possiamo validare il tipo di dati dei parametri di un costruttore.

Prendiamo come esempio questa classe:


namespace app;

class Book {
    public $pages;
    public $title;

    public function __construct($numPages, $givenTitle) {
        if(!is_int($numPages) || !is_string($givenTitle)) {
            throw new Exception('Book::pages must be an integer and Book:title must be a string.');
        } else {
            $this->pages = $numPages;
            $this->title = $givenTitle;
        }
    }
}

Il costruttore di questa classe effettua una validazione sul tipo di dati passatigli, che devono essere rispettivamente un intero ed una stringa. Se il tipo di dati non corrisponde viene sollevata un'eccezione.

Il codice che segue solleverà appunto un'eccezione:


use app\Book;

try {
    $book = new Book('240', 'Test');
} catch(Exception $e) {
    echo $e->getMessage();
}

Torna su