PHP - Penyukatan Kekeras: Panduan Pemula
Hai sana, para ahli PHP masa depan! Saya begitu gembira untuk membawa anda dalam perjalanan melalui dunia yang menarik penyukatan keras PHP. Sebagai seseorang yang telah mengajar PHP selama tahun, saya dapat mengatakan bahwa memahami konsep ini akan membuat anda menjadi pemrogram yang jauh lebih baik. Jadi, mari kita masuk ke dalam!
Apa Itu Penyukatan Keras?
Sebelum kita masuk ke dalam hal-hal kecil, mari kita memahami apa yang dimaksud penyukatan keras. Bayangkan anda sedang memasak kue. Anda tidak akan menggunakan garam sebagai ganti gula, kan? Itu karena resep itu ketat tentang bahan-bahan yang harus digunakan. Demikian pula, penyukatan keras di PHP adalah tentang being tepat dengan jenis data yang kita gunakan dalam kode kita.
Mengapa Penyukatan Keras Penting
Anda mungkin bertanya-tanya, " Mengapa harus peduli tentang penyukatan keras?" Well, teman kecil, penyukatan keras membantu mencegah kutu, membuat kode anda lebih dapat dipercaya, dan bahkan dapat meningkatkan kinerja. Itu seperti memiliki penjaga waspada untuk kode anda!
Contoh: Bahaya Penyukatan Longgar
Mari kita mulai dengan contoh sederhana untuk menunjukkan mengapa penyukatan keras 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 mengkonversi string "10" menjadi integer. Perilaku ini, yang disebut jongkeng jenis, kadang-kadang dapat menyebabkan hasil yang tak terduga. Apa jika seseorang secara kebetulan mengirimkan string yang tidak dapat dikonversi menjadi nomor? Kacau ensues!
Memasuki Type Hints
Type hints seperti name tags untuk parameter fungsi anda. Mereka memberitahu PHP, "Hey, saya hanya ingin jenis data spesifik ini di sini!"
Mari 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 mengirimkan string sebagai ganti integer, PHP akan marah (teknisnya, melempar TypeError). Itu seperti memiliki penjaga di klub yang memeriksa ID!
Type Hints Tersedia
PHP menawarkan berbagai type hints. Berikut adalah tabel yang praktis dari yang paling umum:
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 dapat dipanggil |
iterable | Array atau objek yang mengimplementasi Traversable |
self | Sama jenis kelas seperti yang digunakan |
?type | Jenis nullable (bisa jenis spesifik atau null) |
Kuasa strict_types
Sekarang, mari kita tingkatkan lagi dengan strict_types
. Ini seperti mengaktifkan "mode super ketat" untuk PHP.
Untuk mengaktifkan penyukatan keras, 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 selektif tentang jenis. Itu bahkan tidak akan mencoba mengkonversi "3" ke integer lagi. Itu seperti memiliki guru matematika yang menegaskan perhitungan tepat!
Tipe Return
Apakah anda melihat : float
setelah parameter fungsi? Itu adalah deklarasi tipe return. 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: Kalkulator Sederhana
Mari kita gabungkan semua 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 oleh nol tidak diperbolehkan");
}
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 kelas Calculator
dengan metode yang menggunakan penyukatan keras. Perhatikan bagaimana kita menggunakan float
untuk semua nomor untuk menangani baik integer dan desimal.
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia penyukatan keras PHP. Ingat, penyukatan keras seperti menggunakan sabuk pengaman saat mengoding - mungkin merasa membatasi pada awalnya, tetapi itu ada untuk melindungi anda dari kutu dan kecelakaan.
Sebagai anda terus mengembangkan perjalanan PHP anda, terus berlatih dengan penyukatan keras. Itu akan membuat anda menjadi pemrogram yang lebih disiplin dan dapat dipercaya. Dan siapa tahu? Pada suatu hari, mungkin anda adalah yang mengajarkan orang lain tentang keajaiban penyukatan keras di PHP!
Happy coding, dan silakan jenis anda selalu keras dan kesalahan sedikit!
Credits: Image by storyset