Tipe Data & Type System
PHP terkenal fleksibel dalam menangani tipe data — kadang terlalu fleksibel hingga menyebabkan bug yang sulit dilacak. Memahami type system PHP adalah kunci menulis kode yang aman dan profesional.
Type Juggling (Konversi Otomatis)
PHP secara otomatis mengubah tipe data berdasarkan konteks penggunaan. Ini disebut Type Juggling:
Type Casting (Konversi Manual)
Kadang kamu perlu mengubah tipe data secara eksplisit:
Type Hints (Parameter Types)
Sejak PHP 7, kamu bisa mendeklarasikan tipe yang diharapkan pada parameter dan return value:
Tipe yang Bisa Dipakai
Strict Types (Mode Ketat)
Secara default, PHP masih melakukan type juggling meski kamu pakai type hints. Untuk memaksa pengecekan ketat, tambahkan declare(strict_types=1):
[!IMPORTANT] strict_types berlaku PER FILE Deklarasi
strict_types=1hanya berlaku di file yang mendeklarasikannya, bukan secara global. Setiap file yang ingin mode ketat harus menambahkannya sendiri.
Kapan Pakai strict_types?
Pengecekan Tipe di Runtime
PHP punya fungsi bawaan untuk mengecek tipe data:
Validasi Input yang Aman
Class Type Hints
Type hints juga bekerja dengan class dan interface:
Rangkuman Best Practices
- ✅ Selalu pakai
declare(strict_types=1)di file baru - ✅ Tambahkan type hints di semua parameter dan return value
- ✅ Gunakan
===(ketat), bukan==(longgar) untuk perbandingan - ✅ Validasi dan cast input dari user sebelum diproses
- ✅ Gunakan
?TypeatauType|nulluntuk nilai yang bisa null - ✅ Pakai
var_dump()saat debugging untuk lihat tipe + nilai
Latihan
- Tambahkan
declare(strict_types=1)ke salah satu file PHP di project Toko Online. Apa yang berubah? - Buat fungsi
validasiUmur(int $umur): stringyang return "Anak", "Remaja", atau "Dewasa" — tes dengan string "17" - Refactor fungsi
hitungTotal()di project-mu untuk pakai type hints lengkap
Selanjutnya
Kamu sudah paham cara PHP mengelola tipe data. Lanjut ke Tanggal & Waktu → untuk belajar mengelola DateTime dengan benar.