PHP - Superglobals: Your Gateway to Global Variables

Hai daar, bakat PHP masa depan! Hari ini, kita akan memulakan sebuah perjalanan menarik ke dalam dunia PHP Superglobals. Jangan khawatir jika anda baru dalam bidang programming - saya akan menjadi panduannya yang ramah, dan kita akan menjelajahi topik ini secara berperingkat. Pada akhir panduan ini, anda akan mengguna pakai alat kuat ini seperti seorang pro!

PHP - Superglobals

Apa Itu Superglobals?

Sebelum kita masuk ke dalam, mari kita memahami apa itu Superglobals. Bayangkan anda memiliki beg ajaib yang anda boleh mengakses dari mana-mana di dalam skrip PHP anda. Itu adalah esensi Superglobals - variabel khas yang sentiasa tersedia, tanpa mengira skop. Mereka seperti pisau瑞士 Army knife anda di dunia PHP!

Sekarang, mari kita jelajahi setiap Superglobals secara detil:

1. $GLOBALS

Array $GLOBALS seperti sejenis peti harta yang menyimpan semua variabel global dalam skrip PHP anda. Ia sangat berguna ketika anda mahu mengakses variabel global dari dalam fungsi atau metode.

Contoh:

$x = 75;
$y = 25;

function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}

addition();
echo $z; // Output: 100

Dalam contoh ini, kita menggunakan $GLOBALS untuk mengakses dan mengubah variabel global di dalam fungsi. Itu seperti mencapai beg ajaib itu dari mana-mana di dalam kod anda!

2. $_SERVER

$_SERVER adalah sumber utama anda untuk maklumat tentang header, path, dan lokasi skrip. Ia seperti memiliki seorang pengurus pribadi yang tahu segala sesuatu tentang persekitaran server.

Contoh:

echo "Nama Server: " . $_SERVER['SERVER_NAME'] . "<br>";
echo "Perisian Server: " . $_SERVER['SERVER_SOFTWARE'] . "<br>";
echo "IP Klien: " . $_SERVER['REMOTE_ADDR'];

Perenggan ini akan menunjukkan maklumat tentang server dan klien. Ia sangat berguna untuk mengumpulkan maklumat sistem atau menyesuaikan aplikasi anda berdasarkan perincian server.

3. $_GET

$_GET digunakan untuk mengumpulkan data yang dihantar melalui URL. Ia seperti menerima postcard dengan maklumat ditulis di atasnya.

Contoh:

// Anggap URL ini adalah: example.com/page.php?name=John&age=30

echo "Nama: " . $_GET['name'] . "<br>";
echo "Umur: " . $_GET['age'];

Kod ini akan menunjukkan nama dan umur yang dihantar melalui URL. Ingat, data $_GET adalah kelihatan di URL, jadi jangan gunakan untuk maklumat sensitif!

4. $_POST

$_POST mengumpulkan data borang yang dihantar melalui kaedah HTTP POST. Ia seperti menerima amplop tertutup dengan maklumat di dalamnya.

Contoh:

// Anggap ini diproses selepas menghantar borang
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
echo "Selamat datang, $name! Kami akan menghubungi anda di $email.";
}

Kod ini memproses data yang dihantar melalui borang. Berbeza dengan $_GET, data $_POST adalah tidak kelihatan di URL, menjadikannya lebih sesuai untuk maklumat sensitif.

5. $_FILES

$_FILES adalah pengendali muat naik fail anda. Ia seperti memiliki seorang pegawai fail khusus dalam skrip PHP anda.

Contoh:

if(isset($_FILES['file'])) {
$file_name = $_FILES['file']['name'];
$file_size = $_FILES['file']['size'];
$file_tmp = $_FILES['file']['tmp_name'];

move_uploaded_file($file_tmp, "uploads/" . $file_name);
echo "Fail berjaya dimuat naik!";
}

Kod ini mengendalikan muat naik fail, menyimpan fail yang dimuat naik ke dalam direktori 'uploads'.

6. $_COOKIE

$_COOKIE menyimpan data dalam browser pengguna. Ia seperti meninggalkan catatan untuk diri anda yang anda boleh baca kemudian.

Contoh:

// Tetapkan cookie
setcookie("user", "John Doe", time() + (86400 * 30), "/");

// Baca cookie
if(isset($_COOKIE['user'])) {
echo "Selamat kembali, " . $_COOKIE['user'] . "!";
} else {
echo "Selamat datang, pengguna baru!";
}

Kod ini menetapkan dan membaca cookie. Cookie adalah bagus untuk mengingati keutamaan pengguna atau status log masuk.

7. $_SESSION

$_SESSION menyimpan data untuk pengguna tunggal melintasi beberapa halaman. Ia seperti memiliki kunci gudang pribadi untuk setiap pengunjung ke laman web anda.

Contoh:

session_start();
$_SESSION['username'] = "JohnDoe";
$_SESSION['login_time'] = time();

echo "Selamat datang, " . $_SESSION['username'] . "!";
echo "Anda log masuk pada " . date('Y-m-d H:i:s', $_SESSION['login_time']);

Kod ini memulakan sesi dan menyimpan maklumat pengguna. Sesi adalah sempurna untuk mengekalkan keadaan pengguna melintasi halaman yang berbeza.

8. $_REQUEST

$_REQUEST adalah gabungan dari $_GET, $_POST, dan $_COOKIE. Ia seperti tempat beli satu-stop untuk data input.

Contoh:

// Ini akan berkerja terlepas sama ada data datang dari GET, POST, atau COOKIE
$username = $_REQUEST['username'];
echo "Hello, $username!";

Walaupun mudah, biasanya lebih baik untuk menggunakan $_GET, $_POST, atau $_COOKIE secara langsung untuk kesahan dan keselamatan.

9. $_ENV

$_ENV mengandungi variabel persekitaran. Ia seperti memiliki akses ke panel kendali server.

Contoh:

echo "Root dokumen adalah: " . $_ENV['DOCUMENT_ROOT'];

Kod ini menunjukkan root dokumen server. Catatan bahawa ketersediaan variabel persekitaran boleh berbeza bergantung pada konfigurasi server.

Superglobals Dalam Pandangan

Berikut adalah jadual rujukan cepat semua Superglobals yang kita cover:

Superglobal Tujuan
$GLOBALS Mengakses variabel global dari mana-mana skop
$_SERVER Maklumat tentang server dan persekitaran eksekusi
$_GET Variabel HTTP GET
$_POST Variabel HTTP POST
$_FILES Variabel muat naik fail HTTP
$_COOKIE HTTP Cookie
$_SESSION Variabel sesi
$_REQUEST Variabel permintaan HTTP
$_ENV Variabel persekitaran

Dan begitu sahaja, sahabat saya pelajar! Kita telah menjelajah melalui negeri PHP Superglobals. Ingat, ini adalah alat kuat, jadi gunakan mereka bijak. Sentiasa membersihkan dan validasi input untuk menjaga keselamatan aplikasi anda.

Sementara kami menyusun, saya diingatkan tentang cerita dari hari-hari awal pengajaran saya. Seorang pelajar pernah bertanya kepada saya mengapa mereka dipanggil "Superglobals." Saya menjawab secara cerewal, "Karena mereka memakai jubah dan memerangi kejahatan dalam skop global!" Walaupun itu bukan benar teknikal, menganggap mereka sebagai superhero skrip PHP anda tidak jauh dari kenyataannya.

Terus berlatih, tetap curi-curi, dan kod yang gembira!

Credits: Image by storyset