Ringkasan: Validasi input
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 58 dari 68.
Tantangan
MudahKamu akan menerima empat input: string alamat email, string nomor telepon, angka usia minimum, dan angka usia sebenarnya.
Buat dua class exception kustom:
InvalidEmailExceptionyang memperluas class dasarExceptionInvalidAgeExceptionyang memperluas class dasarException
Buat fungsi bernama validateUserData yang menerima empat parameter: email, telepon, usia minimum, dan usia sebenarnya. Di dalam fungsi ini:
- Periksa apakah email berisi simbol
@. Jika tidak, lemparInvalidEmailExceptiondengan pesan"Email must contain @ symbol" - Periksa apakah panjang nomor telepon tepat 10 karakter. Jika tidak, lempar
Exceptionumum dengan pesan"Phone number must be 10 digits" - Periksa apakah usia sebenarnya kurang dari usia minimum. Jika ya, lempar
InvalidAgeExceptiondengan pesan"User must be at least X years old"(dengan X sebagai nilai usia minimum) - Jika semua validasi berhasil, cetak
"User data is valid"
Gunakan blok try...catch...finally untuk memanggil fungsi dengan input yang diberikan. Buat dua blok catch terpisah:
- Blok
catchpertama harus menangkapInvalidEmailExceptiondan mencetak"Email error: "diikuti pesan exception - Blok
catchkedua harus menangkapInvalidAgeExceptiondan mencetak"Age error: "diikuti pesan exception - Tambahkan blok
catchketiga yang menangkapExceptionlainnya dan mencetak"Validation error: "diikuti pesan exception
Di dalam blok finally, cetak "Validation process completed".
Format input:
- Baris pertama: String yang mewakili alamat email (contoh:
user@example.comatauinvalidemail.com) - Baris kedua: String yang mewakili nomor telepon (contoh:
1234567890atau12345) - Baris ketiga: Integer yang mewakili persyaratan usia minimum (contoh:
18) - Baris keempat: Integer yang mewakili usia sebenarnya (contoh:
25atau16)
Output yang diharapkan:
- Jika semua data valid:
User data is validdiikutiValidation process completedpada baris baru - Jika email tidak valid:
Email error: Email must contain @ symboldiikutiValidation process completedpada baris baru - Jika nomor telepon tidak valid:
Validation error: Phone number must be 10 digitsdiikutiValidation process completedpada baris baru - Jika usia di bawah minimum:
Age error: User must be at least X years old(dengan X sebagai usia minimum) diikutiValidation process completedpada baris baru
Coba sendiri
<?php
// Baca input
$email = trim(fgets(STDIN));
$phone = trim(fgets(STDIN));
$minAge = intval(fgets(STDIN));
$actualAge = intval(fgets(STDIN));
// TODO: Buat class exception khusus di sini
// Buat class InvalidEmailException
// Buat class InvalidAgeException
// TODO: Buat fungsi validateUserData di sini
// Fungsi ini harus menerima empat parameter: email, phone, minAge, actualAge
// Terapkan logika validasi di dalam fungsi
// TODO: Gunakan blok try...catch...finally untuk memanggil fungsi
// Panggil validateUserData dengan nilai input
// Tambahkan blok catch untuk InvalidEmailException, InvalidAgeException, dan Exception umum
// Tambahkan blok finally
?>Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist5Buku Nilai Siswa
Penyiapan Proyek: Struktur DataMenambahkan Siswa BaruMenambahkan Nilai untuk SiswaMenghitung Nilai Rata-Rata SiswaMenemukan Siswa dengan Nilai TertinggiMembuat Rapor8Penanganan Error dan Exception
Memahami Error PHPBlok 'try...catch'Blok 'finally'Melempar ExceptionMembuat Exception KustomMenggunakan Exception KustomRingkasan: Validasi input3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online