Variabel adalah wadah bernama untuk menyimpan nilai, supaya nilai itu bisa dipakai lagi nanti. Bayangin buku pesanan Bu Tini: tiap baris punya label (menu, jumlah, harga) dan isinya (Nasi Goreng, 2, 15000). Label itu nama variabel, isinya nilai. Setiap nilai juga punya tipe: teks, bilangan bulat, desimal, ya atau tidak, atau kosong. Tipe menentukan apa yang bisa dilakukan dengan nilai itu, misalnya dijumlahkan atau disambung.
🧪 Tebakan cepat:
$x = "5" + 3; echo $x;menulis8,53, atau error? Tebak dulu, jawabannya ada di bagian "PHP mengubah tipe sendiri".
Membuat variabel
<?php
$menu = "Nasi Goreng";
$jumlah = 2;
$harga = 15000;
echo $menu;
- Nama variabel selalu diawali tanda dolar
$, dan$itu ikut ditulis setiap kali variabelnya dipakai. =menyimpan nilai di sebelah kanan ke variabel di sebelah kiri. Nilainya boleh diganti kapan saja:$jumlah = 3;.- Sesudah
$, nama diawali huruf atau_, boleh berisi angka, tanpa spasi:$hargaSatuanatau$harga_satuan. - Huruf besar-kecil dibedakan:
$menudan$Menudua variabel yang berbeda. - Gak ada
letatauconstseperti di JavaScript, dan tipenya gak ditulis: PHP menentukan tipe dari nilainya.
Lima tipe dasar
| Tipe | Contoh di warung | Ditulis |
|---|---|---|
string |
nama menu | "Nasi Goreng" |
int |
jumlah, harga | 2, 15000 |
float |
diskon 10% | 0.1 |
bool |
pedas atau gak | true, false |
null |
catatan yang belum diisi | null |
stringadalah teks, ditulis di dalam kutip.intbilangan bulat,floatbilangan desimal,boolcumatrueataufalse, dannullberarti "belum ada nilai".- Desimal di kode memakai titik:
0.1, bukan0,1. - Angka di dalam kutip,
"15000", adalah string, bukan int. - Array, tipe untuk banyak nilai sekaligus, dibahas di lesson Array.
Melihat tipe: var_dump dan gettype
echo cuma menulis nilainya. Untuk tahu tipenya, pakai var_dump atau gettype:
<?php
$menu = "Nasi Goreng";
$diskon = 0.1;
$pedas = true;
$catatan = null;
var_dump($menu);
var_dump($diskon);
var_dump($pedas);
var_dump($catatan);
echo gettype($pedas);
$ php warung.php
string(11) "Nasi Goreng"
float(0.1)
bool(true)
NULL
boolean
var_dumpmenulis tipe lalu isinya. Untuk string, angka di dalam kurung adalah panjangnya: "Nasi Goreng" punya 11 karakter, spasi ikut dihitung.gettypemengembalikan nama tipe sebagai string, dengan nama lama:"string","integer","double"(untuk float),"boolean","NULL". Jadigettype("Budi")menjawabstringdangettype(true)menjawabboolean.- PHP 8 juga punya
get_debug_type, yang memakai nama modern:int,float,bool,null.
Menyusun kalimat dari variabel
<?php
$nama = "Budi";
$umur = 25;
echo "Nama saya $nama, umur $umur tahun.";
Nama saya Budi, umur 25 tahun.
- Di dalam kutip ganda,
$namadan$umurdiganti nilainya. Ini disebut interpolasi. Di dalam kutip tunggal hal ini gak terjadi (dibahas di lesson String). - Cara lain: sambung potongan teks dengan titik.
echo "Nama saya " . $nama . ", umur " . $umur . " tahun.";hasilnya sama.
PHP mengubah tipe sendiri
<?php
$harga = 15000;
$jumlah = "2"; // string, misalnya dari form
var_dump($harga * $jumlah);
var_dump("5" + 3);
var_dump("5" . 3);
int(30000)
int(8)
string(2) "53"
+,-,*dan/selalu berhitung. String yang isinya angka diubah jadi angka dulu. Ini disebut type juggling. Jadi"5" + 3hasilnya8, bukan53seperti di JavaScript. Itu jawaban tebakannya.- Untuk menyambung teks PHP punya operator sendiri, titik:
"5" . 3hasilnya"53". - Teks yang bukan angka gak bisa dihitung:
"Nasi" + 1berhenti denganUncaught TypeError: Unsupported operand types: string + int.
⚠️ Jebakan yang sering ketemu
- Lupa
$.nama = "Budi";berakhir denganParse error: syntax error, unexpected token "=". - Huruf besar-kecil. Variabelnya
$nama, tapi yang ditulis$Nama: PHP memberiWarning: Undefined variable $Namadan menulis kosong. - Angka di dalam kutip.
$umur = "25";membuat string, danvar_dumpmenulisstring(2) "25". Umur dan harga ditulis tanpa kutip:$umur = 25;. - Memeriksa nilai dengan echo.
echo true;menulis1, sedangkanecho false;danecho null;gak menulis apa pun. Untuk memeriksa, pakaivar_dump.
TL;DR: Variabel PHP diawali $ dan diisi dengan =, tanpa menulis tipenya, dan huruf besar-kecil di namanya dibedakan. Tipe dasarnya string (teks dalam kutip), int, float (desimal dengan titik), bool (true/false) dan null. var_dump menulis tipe dan isinya, gettype menjawab nama tipenya (string, integer, double, boolean, NULL). Di dalam kutip ganda, $nama diganti nilainya. Saat berhitung PHP mengubah string berisi angka jadi angka, jadi "5" + 3 hasilnya 8, sedangkan titik menyambung teks.