Cakupan Variabel
Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 67 dari 71.
Variabel yang dibuat di dalam fungsi sepenuhnya terpisah dari variabel di luarnya. Konsep ini disebut cakupan variabel, dan memahaminya dapat mencegah bug yang membingungkan dalam kodemu.
Variabel yang didefinisikan di dalam fungsi hanya ada di dalam fungsi tersebut. Ini disebut variabel lokal:
<?php
function sayHi() {
$message = "Hello!";
echo $message;
}
sayHi();
echo $message; // error: $message tidak ada di sini
?>Variabel $message dibuat di dalam sayHi() dan menghilang saat fungsi berakhir. Mencoba mengaksesnya dari luar akan menyebabkan error.
Demikian pula, variabel yang didefinisikan di luar fungsi tidak otomatis tersedia di dalamnya:
<?php
$name = "Alice";
function greet() {
echo $name; // error: $name tidak didefinisikan di dalam fungsi ini
}
greet();
?>Meskipun $name ada di kode utama, fungsi tidak bisa melihatnya. Untuk menggunakan nilai dari luar dalam fungsi, berikan nilai tersebut sebagai parameter. Itulah pendekatan yang rapi dan disarankan, yang sudah kamu pelajari.
Pemisahan ini sebenarnya membantu. Artinya, fungsi tidak akan secara tidak sengaja mengubah variabel di bagian lain programmu, sehingga kodemu lebih mudah diprediksi dan di-debug.
Tantangan
MudahBaca dua baris input:
- Nama seseorang (misalnya,
Alice) - Jumlah bonus dalam bilangan bulat (misalnya,
50)
Buat fungsi bernama calculateBonus yang menerima dua parameter: $name (string) dan $bonus (int).
Di dalam fungsi:
- Buat variabel lokal
$baseSalarydan tetapkan nilainya menjadi1000 - Hitung total gaji dengan menjumlahkan
$baseSalarydan$bonus - Kembalikan string dengan format:
[name] earns [total]
Panggil fungsi dengan nilai input dan cetak hasil yang dikembalikan.
Contoh 1:
Jika inputnya adalah Alice dan 50, outputnya harus berupa:
Alice earns 1050Contoh 2:
Jika inputnya adalah Bob dan 200, outputnya harus berupa:
Bob earns 1200Contoh 3:
Jika inputnya adalah Emma dan 0, outputnya harus berupa:
Emma earns 1000Coba sendiri
<?php
// Baca input
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));
// TODO: Buat fungsi calculateBonus di bawah ini
// - Fungsi ini harus menerima $name (string) dan $bonus (int) sebagai parameter
// - Buat variabel lokal $baseSalary dengan nilai 1000
// - Hitung total gaji dan kembalikan "[name] earns [total]"
// Panggil fungsi dan cetak hasilnya
echo calculateBonus($name, $bonus);
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan & Logika
Operator PerbandinganKesamaan & IdentitasOperator Logika Bagian 1Operator Logika Bagian 2Rangkuman: Logika Sederhana2Variabel dan Tipe Data
AngkaString dan Tanda KutipBooleanKonvensi PenamaanRangkuman, Inisialisasi VariabelVariabel KosongPenggabungan stringMengambil input PenggunaKonversi ke Tipe Data Lain5Logika Percabangan
Pernyataan ifIf-elseOperator ternaryOperator koalesensi nullPernyataan switchRangkuman: Membuat Keputusan3Operator Dasar
Operator AritmetikaOperator ModuloOperator PangkatPenugasan GabunganInkrementasi/DekrementasiPrioritas OperatorUlasan: Perhitungan SederhanaOperator stringLatihan sendiri: Compiler PHP online