PHP DOCS

SINTAKS-DASAR

Tag PHP (<?php ?>)
Description: Setiap kode PHP harus berada di dalam tag pembuka dan penutup (kecuali file murni PHP).
Example:
<?php echo "Hello World!"; ?>
Output: Hello World!
Variabel ($)
Description: Diawali dengan tanda $. Case-sensitive. Langsung dikenali tipe datanya (loosely typed).
Example:
$nama = "Ridho";
$umur = 25;
Output: Variabel berisi string dan integer.
Tipe Data Dasar
Description: String, Integer, Float, Boolean, Null, Array, Object.
Example:
$str = "teks"; $int = 10; $float = 3.14; $bool = true; $arr = [1,2];
Output: Berbagai tipe data.
Konstanta (define / const)
Description: define('NAMA', nilai) untuk global; const NAMA = nilai untuk di dalam class.
Example:
define("SITE_NAME", "DokumentasiKu");
echo SITE_NAME;
Output: DokumentasiKu
Operator Aritmatika
Description: + - * / % ** (pangkat).
Example:
$jumlah = 2 + 3 * 4; // 14
Output: 14
Operator Perbandingan
Description: ==, === (identik), !=, <>, !==, <, >, <=, >=.
Example:
var_dump(5 == "5"); // true
var_dump(5 === "5"); // false
Output: bool(true) bool(false)
Operator Logika
Description: and, or, xor, &&, ||, !.
Example:
if ($a && $b) { ... }
Output: True jika keduanya true.
String Concatenation (.)
Description: Menggabungkan string dengan titik.
Example:
$full = $nama . " Akbar";
Output: Ridho Akbar

STRUKTUR-KONTROL

if / elseif / else
Description: Percabangan berdasarkan kondisi.
Example:
if ($umur >= 18) {
  echo "Dewasa";
} else {
  echo "Anak-anak";
}
Output: Dewasa (jika umur 18+)
switch / case
Description: Percabangan multi-kondisi.
Example:
switch ($hari) {
  case "Senin": echo "Awal minggu"; break;
  default: echo "Hari lain";
}
Output: Sesuai nilai $hari
match (PHP 8.0+)
Description: Ekspresi yang lebih ketat (===). Hanya mengembalikan nilai.
Example:
$status = match($kode) {
  200, 201 => 'Sukses',
  404 => 'Tidak Ditemukan',
  default => 'Error'
};
Output: String sesuai kode
for loop
Description: Perulangan dengan counter.
Example:
for ($i=0; $i<5; $i++) {
  echo $i;
}
Output: 01234
while loop
Description: Perulangan selama kondisi true.
Example:
$i = 0;
while ($i < 3) {
  echo $i++;
}
Output: 012
do-while loop
Description: Dijalankan minimal sekali.
Example:
do { echo "Jalan"; } while (false);
Output: Jalan
foreach loop
Description: Khusus untuk array atau objek iterable.
Example:
$arr = [1,2,3];
foreach ($arr as $key => $value) {
  echo "$key: $value ";
}
Output: 0: 1 1: 2 2: 3
break / continue
Description: Menghentikan atau melewati iterasi.
Example:
for ($i=0;$i<5;$i++) { if ($i==2) continue; if ($i==4) break; echo $i; }
Output: 013

FUNGSI

Deklarasi Fungsi
Description: function namaFungsi(param) { ... return ...; }
Example:
function tambah($a, $b) {
  return $a + $b;
}
Output: Mengembalikan hasil penjumlahan.
Parameter Default
Description: Nilai default jika tidak diberikan.
Example:
function salam($nama = "User") { return "Halo $nama"; }
Output: Halo User
Type Declaration
Description: Menentukan tipe parameter dan return.
Example:
function kali(float $a, float $b): float {
  return $a * $b;
}
Output: Memaksa parameter float, return float.
Anonymous Function (Closure)
Description: Fungsi tanpa nama, bisa dimasukkan ke variabel.
Example:
$kurang = function($a, $b) { return $a - $b; };
echo $kurang(5,3);
Output: 2
Arrow Function (PHP 7.4+)
Description: Bentuk ringkas dari closure.
Example:
$kali = fn($a, $b) => $a * $b;
Output: Mengembalikan hasil kali.
Variable-length Argument ( ... )
Description: Menerima banyak parameter menjadi array.
Example:
function jumlah(...$angka) { return array_sum($angka); }
Output: Jumlah semua argumen.

ARRAY

Array Indexed
Description: Array dengan indeks numerik otomatis.
Example:
$buah = ["Apel", "Jeruk", "Mangga"];
Output: Array(0=>Apel, 1=>Jeruk, 2=>Mangga)
Array Asosiatif
Description: Array dengan key string.
Example:
$user = ["nama" => "Ridho", "umur" => 25];
Output: Array dengan key nama dan umur
array_push / array_pop
Description: Menambah (push) atau menghapus (pop) elemen akhir.
Example:
array_push($buah, "Anggur");
$terakhir = array_pop($buah);
Output: Menambah Anggur, menghapus Mangga.
array_shift / array_unshift
Description: Menghapus (shift) atau menambah (unshift) elemen awal.
Example:
$depan = array_shift($buah);
array_unshift($buah, "Pisang");
Output: Menghapus Apel, menambah Pisang di depan.
array_merge
Description: Menggabungkan dua atau lebih array.
Example:
$gabung = array_merge([1,2], [3,4]);
Output: [1,2,3,4]
array_map
Description: Mengaplikasikan callback ke setiap elemen.
Example:
$double = array_map(fn($n) => $n*2, [1,2,3]);
Output: [2,4,6]
array_filter
Description: Menyaring elemen dengan callback.
Example:
$genap = array_filter([1,2,3,4], fn($n) => $n % 2 == 0);
Output: [2,4]
in_array / array_search
Description: Mencari nilai dalam array.
Example:
in_array("Jeruk", $buah); // true
Output: bool(true)

STRING

strlen()
Description: Panjang string.
Example:
strlen("Halo");
Output: 4
strtoupper / strtolower
Description: Ubah ke huruf besar/kecil.
Example:
strtoupper("halo");
Output: HALO
explode / implode
Description: Pecah string ke array, gabung array ke string.
Example:
$arr = explode(",", "a,b,c");
echo implode("-", $arr);
Output: a-b-c
str_replace
Description: Mengganti substring.
Example:
str_replace("merah", "biru", "mobil merah");
Output: mobil biru

SUPERGLOBALS

$_GET
Description: Mengambil data dari query string URL (?key=value).
Example:
// URL: page.php?id=123
echo $_GET['id'];
Output: 123
$_POST
Description: Mengambil data dari form method POST.
Example:
echo $_POST['email'];
Output: Isi input email
$_REQUEST
Description: Gabungan $_GET, $_POST, dan $_COOKIE.
Example:
echo $_REQUEST['nama'];
Output: Nilai dari GET/POST/COOKIE
$_SESSION
Description: Menyimpan data sesi di server. Harus session_start() dulu.
Example:
session_start();
$_SESSION['login'] = true;
Output: Data tersimpan selama sesi.
$_COOKIE
Description: Membaca cookie yang dikirim browser.
Example:
echo $_COOKIE['theme'];
Output: dark
$_FILES
Description: Menangani file yang diupload.
Example:
$_FILES['gambar']['name']; // nama asli file
Output: Nama file

DATABASE-PDO

Koneksi PDO
Description: Membuat koneksi database dengan PDO.
Example:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
Output: Objek PDO
Query SELECT (fetch)
Description: Mengambil data dengan query.
Example:
$stmt = $pdo->query('SELECT * FROM users');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  echo $row['name'];
}
Output: Data user ditampilkan.
Prepared Statement (aman)
Description: Query dengan parameter binding untuk mencegah SQL injection.
Example:
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
$stmt->execute(['email' => $email]);
$user = $stmt->fetch();
Output: User dengan email tertentu.
INSERT / UPDATE / DELETE
Description: Menggunakan execute dengan prepared statement.
Example:
$stmt = $pdo->prepare('INSERT INTO users (name) VALUES (:name)');
$stmt->execute(['name' => 'Ridho']);
Output: Data berhasil ditambahkan.

OOP

Class & Object
Description: Mendefinisikan blueprint dan membuat instance.
Example:
class User {
  public $name;
  function __construct($name) { $this->name = $name; }
}
$user = new User('Ridho');
Output: Objek User dengan name = Ridho
Inheritance (extends)
Description: Mewarisi properti dan method dari parent class.
Example:
class Admin extends User {
  public $role = 'admin';
}
Output: Admin memiliki $name dan $role.
Interface
Description: Kontrak method yang harus diimplementasikan class.
Example:
interface Logger {
  public function log($msg);
}
Output: Class yang implements Logger wajib memiliki method log().
Trait
Description: Menyisipkan method ke dalam class (horizontal reuse).
Example:
trait Loggable {
  public function log($msg) { echo $msg; }
}
class File { use Loggable; }
Output: Method log() tersedia di class File.

ERROR

try-catch-finally
Description: Menangani exception.
Example:
try {
  throw new Exception('Error');
} catch (Exception $e) {
  echo $e->getMessage();
} finally {
  echo 'Selesai';
}
Output: Error Selesai
Custom Exception
Description: Membuat class exception sendiri.
Example:
class ValidationException extends Exception {}
Output: Bisa throw new ValidationException('Pesan')

KEAMANAN

htmlspecialchars()
Description: Mencegah XSS dengan mengkonversi karakter khusus HTML.
Example:
echo htmlspecialchars($_POST['komentar']);
Output: Tag HTML tidak akan dieksekusi.
password_hash / password_verify
Description: Hash password dengan bcrypt dan verifikasinya.
Example:
$hash = password_hash('rahasia', PASSWORD_BCRYPT);
if (password_verify('rahasia', $hash)) { echo 'Cocok'; }
Output: Cocok
CSRF Token
Description: Mencegah Cross-Site Request Forgery dengan token unik.
Example:
// di form: <input type="hidden" name="token" value="<?= $token ?>">
// validasi: if ($_POST['token'] !== $_SESSION['token']) die('CSRF');
Output: Form hanya bisa dikirim dari halaman asli.

PHP8-FITUR

Named Arguments
Description: Memanggil fungsi dengan menyebut nama parameter.
Example:
function profil($nama, $umur) { ... }
profil(umur: 25, nama: 'Ridho');
Output: Urutan tidak penting.
Match Expression
Description: Struktur kondisional yang mengembalikan nilai (strict comparison).
Example:
echo match(404) { 200 => 'OK', 404 => 'Not Found' };
Output: Not Found
Nullsafe Operator (?->)
Description: Memanggil method/properti hanya jika tidak null.
Example:
echo $user?->profile?->name;
Output: Nilai atau null tanpa error.
Enum (PHP 8.1+)
Description: Tipe data enumerasi.
Example:
enum Status { case Draft; case Published; }
Output: Nilai terbatas.

BEST-PRACTICES

Gunakan Composer & Autoloading
Description: Manajemen dependensi modern.
Example:
composer init, composer require phpmailer/phpmailer
Output: Dependensi terkelola.
Pisahkan Logika dari Tampilan
Description: Hindari campur aduk PHP dan HTML.
Example:
Gunakan template engine (Blade, Twig) atau pisahkan file.
Output: Kode lebih bersih.
Validasi dan Sanitasi Input
Description: Gunakan filter_var() atau library validasi.
Example:
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
Output: Email valid atau false.