Ekspresi Match dan Argumen Bernama
Gantikan switch yang panjang dengan match dan gunakan argumen bernama agar lebih jelas.
Ekspresi Match dan Argumen Bernama adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Ekspresi match
PHP 8.0 memperkenalkan match, alternatif ringkas untuk switch yang menggunakan kesetaraan ketat (===) dan mengembalikan sebuah nilai.
match dibandingkan Percabangan
Perbedaan utama: match menggunakan perbandingan ketat, tidak memiliki perilaku jatuh ke cabang berikutnya, dan merupakan ekspresi (mengembalikan sebuah nilai).
<?php
$status = 2;
$label = match($status) {
1 => "active",
2 => "inactive",
3 => "banned",
default => "unknown",
};
echo $label; // "inactive"Beberapa Kondisi dalam Satu Cabang
Pisahkan beberapa nilai match dengan koma untuk menanganinya menggunakan hasil yang sama.
<?php
$code = 404;
$type = match($code) {
200, 201, 202 => "success",
400, 422 => "client error",
404 => "not found",
500, 503 => "server error",
default => "other",
};
echo $type; // "not found"match Melempar Kesalahan jika Tidak Ada Kecocokan
Jika tidak ada cabang yang cocok dan tidak ada default, PHP melempar UnhandledMatchError—berbeda dari switch yang terus berjalan tanpa memberi tahu.
match sebagai Ekspresi
Karena match mengembalikan sebuah nilai, Anda dapat menggunakannya secara langsung—sebagai argumen fungsi, dalam pernyataan return, atau di dalam interpolasi string.
<?php
echo "Status: ".match($active) {
true => "ON",
false => "OFF",
};Argumen Bernama
Argumen bernama PHP 8.0 memungkinkan Anda meneruskan argumen ke fungsi berdasarkan nama parameter, dalam urutan apa pun.
<?php
function makeTag(string $tag, string $content, string $class = ""): string {
return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");Manfaat Argumen Bernama
Argumen bernama meningkatkan keterbacaan fungsi dengan banyak parameter, memungkinkan Anda melewati parameter opsional, dan memperjelas arti setiap nilai.
Argumen Bernama dengan Fungsi Bawaan
Argumen bernama juga berfungsi dengan fungsi bawaan PHP.
<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);Menggabungkan Argumen Bernama dan Posisional
Anda dapat mencampur argumen posisional dan bernama, tetapi argumen bernama harus diletakkan setelah argumen posisional.
<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");Argumen Bernama dalam array_map
Argumen bernama sangat berguna dengan fungsi bawaan variadik yang memiliki urutan parameter yang membingungkan.
match dalam Kode Nyata
Ganti rangkaian if/elseif yang panjang dengan match untuk perutean metode HTTP, pemetaan kode status, dan keputusan bergaya enum.
<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
"GET" => new GetHandler(),
"POST" => new PostHandler(),
"DELETE" => new DeleteHandler(),
default => throw new InvalidArgumentException("Unsupported method"),
};Ringkasan
match menyediakan percabangan yang ketat, menyeluruh, dan bebas dari perilaku jatuh ke cabang berikutnya. Argumen bernama meningkatkan keterbacaan tempat pemanggilan. Keduanya merupakan peningkatan besar pada PHP 8.0.
Pemeriksaan Singkat
Apa yang terjadi ketika tidak ada cabang match yang cocok dan tidak ada default?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Ekspresi Match dan Argumen Bernama” gratis?
Ya — teks lengkap “Ekspresi Match dan Argumen Bernama” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Ekspresi Match dan Argumen Bernama”?
Gantikan switch yang panjang dengan match dan gunakan argumen bernama agar lebih jelas. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Ekspresi Match dan Argumen Bernama” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Ekspresi Match dan Argumen Bernama
- Operator Nullsafe dan Tipe Union
- Enumerasi (Enum)
- Fiber: Konkruensi Kooperatif