Riepilogo: convalida dell'input
Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 58 di 68.
Sfida
FacileRiceverai quattro input: una stringa che rappresenta un indirizzo email, una stringa che rappresenta un numero di telefono, un numero che rappresenta l'età minima e un numero che rappresenta l'età effettiva.
Crea due classi di eccezione personalizzate:
InvalidEmailExceptionche estende la classe baseExceptionInvalidAgeExceptionche estende la classe baseException
Crea una funzione chiamata validateUserData che accetta quattro parametri: email, telefono, età minima ed età effettiva. All'interno di questa funzione:
- Verifica se l'email contiene il simbolo
@. Se non lo contiene, genera un'eccezioneInvalidEmailExceptioncon il messaggio"Email must contain @ symbol" - Verifica se la lunghezza del numero di telefono è esattamente di 10 caratteri. Se non lo è, genera un'eccezione generica
Exceptioncon il messaggio"Phone number must be 10 digits" - Verifica se l'età effettiva è inferiore all'età minima. In caso affermativo, genera un'eccezione
InvalidAgeExceptioncon il messaggio"User must be at least X years old"(dove X è il valore dell'età minima) - Se tutte le convalide hanno esito positivo, stampa
"User data is valid"
Usa un blocco try...catch...finally per chiamare la funzione con gli input forniti. Crea due blocchi catch separati:
- Il primo blocco
catchdeve intercettareInvalidEmailExceptione stampare"Email error: "seguito dal messaggio dell'eccezione - Il secondo blocco
catchdeve intercettareInvalidAgeExceptione stampare"Age error: "seguito dal messaggio dell'eccezione - Aggiungi un terzo blocco
catchche intercetti qualsiasi altraExceptione stampi"Validation error: "seguito dal messaggio dell'eccezione
Nel blocco finally, stampa "Validation process completed".
Formato dell'input:
- Prima riga: una stringa che rappresenta l'indirizzo email (esempio:
user@example.comoinvalidemail.com) - Seconda riga: una stringa che rappresenta il numero di telefono (esempio:
1234567890o12345) - Terza riga: un numero intero che rappresenta il requisito di età minima (esempio:
18) - Quarta riga: un numero intero che rappresenta l'età effettiva (esempio:
25o16)
Output previsto:
- Se tutti i dati sono validi:
User data is validseguito daValidation process completedsu una nuova riga - Se l'email non è valida:
Email error: Email must contain @ symbolseguito daValidation process completedsu una nuova riga - Se il numero di telefono non è valido:
Validation error: Phone number must be 10 digitsseguito daValidation process completedsu una nuova riga - Se l'età è inferiore al minimo:
Age error: User must be at least X years old(dove X è l'età minima) seguito daValidation process completedsu una nuova riga
Provalo tu
<?php
// Leggi i dati di input
$email = trim(fgets(STDIN));
$phone = trim(fgets(STDIN));
$minAge = intval(fgets(STDIN));
$actualAge = intval(fgets(STDIN));
// TODO: Crea qui le classi di eccezione personalizzate
// Crea la classe InvalidEmailException
// Crea la classe InvalidAgeException
// TODO: Crea qui la funzione validateUserData
// La funzione deve accettare quattro parametri: email, phone, minAge, actualAge
// Implementa la logica di validazione all'interno della funzione
// TODO: Usa un blocco try...catch...finally per chiamare la funzione
// Chiama validateUserData con i valori di input
// Aggiungi blocchi catch per InvalidEmailException, InvalidAgeException e l'eccezione generica Exception
// Aggiungi un blocco finally
?>Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist5Registro dei voti degli studenti
Configurazione del progetto: struttura dei datiAggiungere un nuovo studenteAggiungere un voto a uno studenteCalcolare la media dello studenteTrovare lo studente con la media più altaGenerare una pagella8Gestione degli errori e delle eccezioni
Comprendere gli errori PHPIl blocco 'try...catch'Il blocco 'finally'Lanciare un'eccezioneCreare un'eccezione personalizzataUsare un'eccezione personalizzataRiepilogo: convalida dell'input3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online