0Pricing
PHP Academy · Pelajaran

Parameter Default dan Variadik

Menggunakan nilai default dan argumen variadik dalam fungsi PHP.

Parameter Default dan Variadik adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Nilai Parameter Bawaan

Nilai bawaan memungkinkan pemanggil tidak menyertakan argumen. Nilai bawaan digunakan saat argumen tidak diberikan:

<?php
function createUser(string $name, string $role = 'viewer'): string {
    return "$name ($role)";
}

echo createUser('Alice');          // Alice (viewer)
echo createUser('Bob', 'admin');   // Bob (admin)

Aturan Nilai Bawaan

Aturan penting untuk parameter bawaan:

  • Parameter dengan nilai bawaan harus diletakkan setelah parameter wajib
  • Nilai bawaan harus berupa ekspresi konstan — bukan pemanggilan fungsi atau variabel
  • Argumen bernama PHP 8 melonggarkan persyaratan urutan

Parameter yang Dapat Bernilai NULL

Gunakan ?type untuk mengizinkan NULL sebagai argumen yang valid, dengan NULL sebagai nilai bawaan:

<?php
function findUser(?int $id = null): string {
    if ($id === null) {
        return 'Searching all users';
    }
    return "User #$id";
}

echo findUser();    // Searching all users
echo findUser(42);  // User #42

Fungsi Variadik dengan ...

Gunakan ... sebelum parameter untuk menerima sejumlah argumen yang berubah-ubah sebagai larik:

<?php
function sum(int ...$numbers): int {
    return array_sum($numbers);
}

echo sum(1, 2, 3);        // 6
echo sum(10, 20, 30, 40); // 100

Variadik dengan Parameter Wajib

Anda dapat menggabungkan parameter wajib dengan parameter variadik di bagian akhir:

<?php
function logMessage(string $level, string ...$messages): void {
    foreach ($messages as $msg) {
        echo "[$level] $msg" . PHP_EOL;
    }
}

logMessage('INFO', 'App started', 'Config loaded');

Operator Penyebaran dalam Panggilan

Gunakan ... saat memanggil fungsi untuk menyebarkan larik menjadi argumen individual:

<?php
function add3(int $a, int $b, int $c): int {
    return $a + $b + $c;
}

$args = [1, 2, 3];
echo add3(...$args);  // 6

$extra = [4, 5];
echo add3(1, ...$extra);  // 10

Argumen Bernama (PHP 8)

Argumen bernama memungkinkan Anda meneruskan nilai berdasarkan nama parameter tanpa memedulikan urutannya:

<?php
function createTag(string $tag, string $content, string $class = ''): string {
    $cls = $class ? " class=\"$class\"" : '';
    return "<$tag$cls>$content</$tag>";
}

// Skip $class, pass $content by name
echo createTag(content: 'Hello', tag: 'p');
// <p>Hello</p>

Argumen Bernama dengan Fungsi Bawaan

Argumen bernama juga berfungsi dengan fungsi bawaan PHP:

<?php
$arr = [3, 1, 4, 1, 5];

// Traditional positional
$result1 = array_slice($arr, 1, 3);

// Named arguments
$result2 = array_slice(array: $arr, offset: 1, length: 3);

print_r($result1); // [1, 4, 1]

Warisan func_get_args()

Sebelum sintaks variadik PHP 5.6, func_get_args() digunakan untuk mengakses semua argumen. Anda mungkin menemukannya dalam kode warisan:

<?php
function legacySum(): int {
    $args = func_get_args();
    return array_sum($args);
}

echo legacySum(1, 2, 3, 4);  // 10
// Modern: use int ...$numbers instead

Parameter Variadik dengan Petunjuk Tipe

Gabungkan petunjuk tipe dengan parameter variadik untuk masukan yang ketat:

<?php
declare(strict_types=1);

function joinStrings(string $sep, string ...$parts): string {
    return implode($sep, $parts);
}

echo joinStrings('-', 'a', 'b', 'c');  // a-b-c
// joinStrings('-', 'a', 42); // TypeError in strict mode

Menggabungkan Nilai Bawaan dan Argumen Bernama

Argumen bernama dan nilai bawaan dapat digunakan bersama untuk memberikan fleksibilitas maksimal:

<?php
function sendEmail(
    string $to,
    string $subject,
    string $body = '',
    bool   $html  = false
): bool {
    // simulate send
    return true;
}

// Skip $body, pass $html by name
sendEmail('a@b.com', 'Hi', html: true);

Pemeriksaan Singkat

Apa yang dilakukan operator ... dalam definisi fungsi PHP?

Ringkasan: Parameter Bawaan dan Variadik

Ringkasan:

  • Nilai bawaan memungkinkan parameter opsional
  • Parameter dengan nilai bawaan diletakkan setelah parameter wajib
  • ?type mengizinkan NULL dengan nilai bawaan opsional
  • ...$args mengumpulkan argumen variadik ke dalam larik
  • Operator penyebaran ...$arr memperluas larik di lokasi pemanggilan
  • Argumen bernama (PHP 8) diteruskan berdasarkan nama, bukan posisi

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Parameter Default dan Variadik” gratis?

Ya — teks lengkap “Parameter Default dan Variadik” 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 “Parameter Default dan Variadik”?

Menggunakan nilai default dan argumen variadik dalam fungsi PHP. 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 2 dari 4.

Berapa lama pelajaran “Parameter Default dan Variadik” 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

  1. Mendefinisikan dan Memanggil Fungsi
  2. Parameter Default dan Variadik
  3. Cakupan Variabel: Lokal dan Global
  4. Fungsi Anonim dan Closure
← Kembali ke PHP Academy