Menu
CoddyTech

Menggunakan 'call_user_func'

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 5 dari 68.

Fungsi call_user_func() menyediakan cara yang ampuh untuk memanggil fungsi secara dinamis di PHP. Alih-alih memanggil fungsi langsung dengan namanya, kamu bisa menyimpan nama fungsi dalam variabel string dan menggunakan call_user_func() untuk menjalankannya.

Berikut sintaks dasarnya:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Output: Hello World!
?>

Ini menjadi sangat berguna ketika kamu perlu memanggil fungsi yang berbeda berdasarkan input pengguna atau kondisi. Kamu juga bisa meneruskan argumen ke fungsi dengan menyertakannya sebagai parameter tambahan:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Output: 8
?>

Pemanggilan fungsi dinamis ini sangat berguna saat membangun aplikasi fleksibel yang fungsi spesifiknya ditentukan saat program berjalan, seperti kalkulator, pemroses perintah, atau sistem perutean.

challenge icon

Tantangan

Mudah

Buat tiga fungsi: multiply yang menerima dua angka dan mengembalikan hasil kalinya, subtract yang menerima dua angka dan mengembalikan selisihnya, serta divide yang menerima dua angka dan mengembalikan hasil baginya.

Kamu akan menerima tiga input: nama operasi ("multiply", "subtract", atau "divide"), dan dua angka. Baca ketiga input, gunakan call_user_func() untuk menjalankan fungsi yang sesuai dengan kedua angka tersebut, lalu cetak hasilnya.

Format input: Tiga baris: baris pertama berisi nama operasi, baris kedua berisi angka pertama, baris ketiga berisi angka kedua

Output yang diharapkan: Hasil operasi

Coba sendiri

<?php
// Baca input
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Buat tiga fungsi (multiply, subtract, divide) di sini

// TODO: Gunakan call_user_func() untuk menjalankan fungsi yang sesuai

// Tampilkan hasilnya sebagai output
echo $result;
?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online