Menu
CoddyTech

Mengirim dengan Referensi

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

Secara default, saat kamu meneruskan variabel ke fungsi di PHP, fungsi menerima salinan nilai variabel tersebut. Artinya, perubahan apa pun yang dibuat di dalam fungsi tidak memengaruhi variabel asli di luar fungsi.

Namun, terkadang kamu ingin fungsi mengubah variabel asli secara langsung. Di sinilah cara meneruskan dengan referensi digunakan. Dengan menambahkan ampersand (&) sebelum nama parameter dalam definisi fungsi, kamu memberi tahu PHP untuk meneruskan variabel yang sebenarnya, bukan salinannya:

<?php
function doubleValue(&$number) {
    $number = $number * 2;
}

$value = 10;
doubleValue($value);
echo $value;  // Output: 20
?>

Perhatikan bahwa $value berubah dari 10 menjadi 20 meskipun kita tidak mengembalikan apa pun dari fungsi. Parameter &$number membuat tautan langsung ke variabel $value yang asli, sehingga fungsi dapat mengubahnya secara langsung.

Teknik ini sangat berguna saat kamu perlu membuat fungsi mengubah beberapa variabel atau saat bekerja dengan struktur data besar yang tidak efisien jika disalin.

challenge icon

Tantangan

Mudah

Buat fungsi bernama updateInventory yang menerima tiga parameter: referensi ke variabel jumlah, jumlah yang akan ditambahkan, dan jumlah yang akan dikurangi. Fungsi tersebut harus mengubah jumlah awal dengan menambahkan jumlah pertama dan mengurangi jumlah kedua.

Kamu akan menerima tiga input: jumlah awal, jumlah yang akan ditambahkan, dan jumlah yang akan dikurangi. Baca ketiga input tersebut, buat variabel dengan jumlah awal, panggil fungsi updateInventory dengan meneruskan jumlah melalui referensi beserta jumlah yang akan ditambahkan dan dikurangi, lalu cetak jumlah yang telah diperbarui.

Format input: Tiga baris. Baris pertama berisi jumlah awal (angka), baris kedua berisi jumlah yang akan ditambahkan (angka), baris ketiga berisi jumlah yang akan dikurangi (angka)

Output yang diharapkan: Jumlah yang telah diperbarui setelah penambahan dan pengurangan

Coba sendiri

<?php
// Baca input
$initialQuantity = intval(fgets(STDIN));
$amountToAdd = intval(fgets(STDIN));
$amountToRemove = intval(fgets(STDIN));

// Buat variabel quantity
$quantity = $initialQuantity;

// TODO: Buat fungsi updateInventory di sini yang menerima parameter referensi

// TODO: Panggil fungsi updateInventory dengan meneruskan quantity sebagai referensi

// Tampilkan quantity yang telah diperbarui sebagai output
echo $quantity;
?>
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