PHP - Strict Typing: A Beginner's Guide
Halo teman-teman masa depan yang akan menjadi ahli PHP! Saya sangat antusias untuk membawa Anda dalam perjalanan menarik melalui dunia yang menarik dari PHP strict typing. Sebagai orang yang telah mengajar PHP selama bertahun-tahun, saya bisa katakan bahwa memahami konsep ini akan membuat Anda menjadi pemrogram yang jauh lebih baik. Jadi, mari kita masuk ke dalamnya!
Apa Itu Strict Typing?
Sebelum kita masuk ke detilnya, mari kita pahami apa itu strict typing. Bayangkan Anda sedang membuat kue. Anda tidak akan menggunakan garam sebagai ganti gula, kan? Itu karena resep itu ketat tentang bahan-bahan yang harus digunakan. Demikian pula, strict typing di PHP adalah tentang menjadi presisi dengan jenis data yang kita gunakan dalam kode kita.
Mengapa Strict Typing Penting
Anda mungkin bertanya-tanya, "Mengapa saya perlu khawatir tentang strict typing?" Well, teman kecil, strict typing membantu mencegah kutu, membuat kode Anda lebih dapat dipercaya, dan bahkan dapat meningkatkan kinerja. Itu seperti memiliki penjaga yang waspada untuk kode Anda!
Contoh: Bahaya Loose Typing
mari kita mulai dengan contoh sederhana untuk menunjukkan mengapa strict typing bisa menjadi penyelamat:
function addNumbers($a, $b) {
return $a + $b;
}
echo addNumbers(5, "10"); // Output: 15
echo addNumbers("5", "10"); // Output: 15
Dalam contoh ini, PHP secara otomatis mengonversi string "10" menjadi integer. Perilaku ini, yang disebut type juggling, kadang-kadang bisa menyebabkan hasil yang tidak diharapkan. Apa bila seseorang secara tidak sengaja mensampaikan string yang tidak bisa dikonversi menjadi nomor? Kacau!
Memasuki Type Hints
Type hints adalah seperti name tag untuk parameter fungsi Anda. Mereka memberitahu PHP, "Hai, saya hanya mau jenis data tertentu di sini!"
Marilah kita tingkatkan contoh sebelumnya:
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, 10); // Output: 15
echo addNumbers("5", "10"); // Melempar TypeError
Sekarang, jika seseorang mencoba mensampaikan string sebagai ganti integer, PHP akan marah (teknisnya, melempar TypeError). Itu seperti memiliki bouncer di klub yang memeriksa ID!
Type Hints yang Tersedia
PHP menawarkan berbagai jenis type hints. Berikut adalah tabel praktis dari yang paling umum digunakan:
Type Hint | Deskripsi |
---|---|
int | Bilangan bulat |
float | Bilangan pecahan |
string | String teks |
bool | Nilai boolean (benar/salah) |
array | Array |
object | Object apa saja |
callable | Fungsi atau metode yang bisa dipanggil |
iterable | Array atau object yang mengimplementasi Traversable |
self | Class yang sama seperti dimana itu digunakan |
?type | Jenis nullable (bisa jenis tertentu atau null) |
Kuasa strict_types
Sekarang, mari kita tingkatkan lagi dengan strict_types
. Itu seperti menyalakan "mode super ketat" di PHP.
Untuk mengaktifkan strict typing, tambahkan baris ini di bagian atas file PHP Anda:
<?php
declare(strict_types=1);
function divideNumbers(int $a, int $b): float {
return $a / $b;
}
echo divideNumbers(10, 3); // Output: 3.3333333333333
echo divideNumbers(10, "3"); // Melempar TypeError
Dengan strict_types
diaktifkan, PHP menjadi jauh lebih picky tentang jenis. Itu bahkan tidak akan mencoba mengkonversi "3" ke integer lagi. Itu seperti memiliki guru matematika yang menegaskan perhitungan yang presisi!
Jenis Kembalian
Apakah Anda melihat : float
setelah parameter fungsi? Itu adalah deklarasi jenis kembalian. Itu memberitahu PHP bahwa fungsi ini harus mengembalikan nilai float.
function greet(string $name): string {
return "Hello, $name!";
}
echo greet("Alice"); // Output: Hello, Alice!
echo greet(123); // Melempar TypeError
Contoh Praktis: Calculator Sederhana
Marilah kita gabungkan semua ini dengan contoh yang lebih praktis:
<?php
declare(strict_types=1);
class Calculator {
public function add(float $a, float $b): float {
return $a + $b;
}
public function subtract(float $a, float $b): float {
return $a - $b;
}
public function multiply(float $a, float $b): float {
return $a * $b;
}
public function divide(float $a, float $b): float {
if ($b == 0) {
throw new Exception("Pembagian dengan nol tidak diijinkan");
}
return $a / $b;
}
}
$calc = new Calculator();
try {
echo $calc->add(5.5, 3.2) . "\n"; // Output: 8.7
echo $calc->subtract(10, 4) . "\n"; // Output: 6
echo $calc->multiply(2.5, 3) . "\n"; // Output: 7.5
echo $calc->divide(15, 3) . "\n"; // Output: 5
echo $calc->divide(10, 0); // Melempar Exception
} catch (TypeError $e) {
echo "Type Error: " . $e->getMessage();
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
Dalam contoh ini, kita telah membuat class Calculator
dengan metode yang menggunakan strict typing. Catatlah bagaimana kita menggunakan float
untuk semua nomor untuk menangani baik integer maupun desimal.
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia PHP strict typing. Ingat, strict typing adalah seperti memakai sabuk keselamatan saat mengoding – mungkin merasa membatasi awalnya, tapi itu ada untuk melindungi Anda dari kutu dan kecelakaan yang memalukan.
Sekarang, teruslatih dengan strict typing. Itu akan membuat Anda menjadi pemrogram yang lebih disiplin dan dapat dipercaya. Dan siapa tahu? Suatu hari, Anda mungkin menjadi orang yang mengajarkan orang lain tentang keajaiban strict typing di PHP!
Happy coding, dan may your types always be strict and your errors few!
Credits: Image by storyset