0Pricing
PHP Academy · Pelajaran

Cakupan Variabel: Lokal dan Global

Memahami cara PHP mengisolasi cakupan fungsi dan cara menggunakan kata kunci global.

Cakupan Variabel: Lokal dan Global adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Lingkup Variabel dalam PHP

Dalam PHP, setiap variabel memiliki lingkup — wilayah kode tempat variabel tersebut dapat diakses.

  • Variabel yang dibuat di luar fungsi berada dalam lingkup global
  • Variabel yang dibuat di dalam fungsi berada dalam lingkup lokal
  • PHP TIDAK memiliki lingkup blok (berbeda dengan C atau JavaScript)

Lingkup Lokal

Variabel di dalam fungsi bersifat lokal — variabel tersebut tidak lagi ada saat fungsi selesai:

<?php
function compute(): void {
    $result = 42;  // local variable
    echo $result;  // 42
}

compute();
echo $result ?? 'undefined';  // undefined — $result is gone

Variabel Global TIDAK Terlihat Otomatis

Berbeda dengan banyak bahasa lain, fungsi PHP tidak dapat melihat variabel global secara bawaan — Anda harus menyatakannya secara eksplisit:

<?php
$message = 'Hello';

function printMessage(): void {
    echo $message ?? 'not visible';  // 'not visible'
    // $message from global scope is not accessible here
}

Kata Kunci global

Gunakan global $varName di dalam fungsi untuk mengakses variabel global:

<?php
$counter = 0;

function increment(): void {
    global $counter;
    $counter++;
}

increment();
increment();
echo $counter;  // 2

Superglobal $GLOBALS

$GLOBALS adalah larik yang menyimpan semua variabel global — dapat diakses di mana saja tanpa kata kunci global:

<?php
$total = 100;

function addTax(): void {
    $GLOBALS['total'] *= 1.18;  // 18% tax
}

addTax();
echo $total;  // 118

Alasan Menghindari global

Penggunaan global secara berlebihan menciptakan dependensi tersembunyi — fungsi menjadi sulit diuji dan ditelusuri kesalahannya. Sebaiknya teruskan nilai sebagai argumen:

<?php
// Bad
$db = new PDO(/* ... */);
function getUsers(): array {
    global $db;
    return $db->query('SELECT * FROM users')->fetchAll();
}

// Good
function getUsers(PDO $db): array {
    return $db->query('SELECT * FROM users')->fetchAll();
}

Variabel static

Variabel static mempertahankan nilainya di antara pemanggilan fungsi, tetapi tetap bersifat lokal bagi fungsi tersebut:

<?php
function callCount(): int {
    static $count = 0;
    return ++$count;
}

echo callCount();  // 1
echo callCount();  // 2
echo callCount();  // 3

Closure dan Penangkapan Variabel

Closure (fungsi anonim) dapat menangkap variabel dari lingkup luar dengan use:

<?php
$prefix = 'Mr';

$greet = function(string $name) use ($prefix): string {
    return "$prefix. $name";
};

echo $greet('Smith');  // Mr. Smith

Penangkapan Berdasarkan Referensi

Lakukan penangkapan berdasarkan referensi dengan use (&$var) agar closure dapat mengubah variabel luar:

<?php
$total = 0;

$add = function(int $n) use (&$total): void {
    $total += $n;
};

$add(10);
$add(5);
echo $total;  // 15

Fungsi Panah

Fungsi panah PHP 7.4 (fn =>) secara otomatis menangkap lingkup luar berdasarkan nilai — tidak memerlukan use:

<?php
$multiplier = 3;
$nums = [1, 2, 3, 4];

$result = array_map(fn($n) => $n * $multiplier, $nums);

print_r($result);  // [3, 6, 9, 12]

Fungsi Bersarang

PHP memungkinkan Anda mendefinisikan fungsi di dalam fungsi lain, tetapi fungsi dalam menjadi dapat diakses secara global setelah fungsi luar dipanggil:

<?php
function outer(): void {
    function inner(): void {
        echo 'inner called';
    }
}

// inner(); // Fatal: undefined before outer() is called
outer();
inner(); // works now

Pemeriksaan Singkat

Apa yang dilakukan variabel static di dalam fungsi PHP?

Ringkasan: Lingkup Variabel

Aturan utama lingkup dalam PHP:

  • Fungsi memiliki lingkup lokalnya sendiri
  • Variabel global harus diimpor dengan global
  • Gunakan $GLOBALS['name'] sebagai alternatif
  • Variabel static bertahan di antara pemanggilan dalam suatu fungsi
  • Closure menangkap variabel luar dengan use
  • Fungsi panah secara otomatis menangkap berdasarkan nilai

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Cakupan Variabel: Lokal dan Global” gratis?

Ya — teks lengkap “Cakupan Variabel: Lokal dan Global” 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 “Cakupan Variabel: Lokal dan Global”?

Memahami cara PHP mengisolasi cakupan fungsi dan cara menggunakan kata kunci global. 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 3 dari 4.

Berapa lama pelajaran “Cakupan Variabel: Lokal dan Global” 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