Percabangan, atau sering disebut juga dengan istilah decision-making, memungkinkan aplikasi untuk memeriksa isi suatu variabel atau hasil perhitungan ekspresi dan mengambil tindakan yang sesuai. Ada dua jenis percabangan, dipilih berdasarkan kriteria pemeriksaan dan jumlah pilihan yang tersedia.
if -- else
Konstruksi if-else dapat dijelaskan sebagai berikut:
if(condition)
{
// statement 1 goes here
} else
{
// statemant 2 goes here
}
// statement 3 goes here
Aliran program:
- Condition akan diperiksa
- Bila bernilai true, statement 1 akan dijalankan
- Bila bernilai false, statement 2 akan dijalankan 4. Statement 3 dijalankan.
if - elseif - else
Untuk pilihan yang lebih dari dua, PHP menyediakan konstruksi if-elseif-else.
if(condition1)
{
// statement 1
}
elseif(condition2)
{
// statement 2
} else
{
// statement 3
}
// statement 4
Aliran program:
Ada 3 kemungkinan aliran program:
Apabila condition 1 bernilai true:
- Statement 1 dijalankan
- Statement 4 dijalankan
Apabila condition 1 bernilai false, dan condition 2 bernilai true :
- Statement 2 dijalankan
- Statement 4 dijalankan
Apabila condition 1 dan condition 2 bernilai false :
- Statement 3 dijalankan
- Statement 4 dijalankan.
Contoh penggunaan if-else dapat dilihat dengan mengikuti contoh di bawah. Buatlah dua file, control_flow.htm dan ifDemo.php. control_flow.htm mempunyai tampilan sebagai berikut :

ifDemo.php berisi listing kode sebagai berikut:
<?php
// ifDemo.php
// digunakan bersama control_flow.htm
$kelabu = "#303030";
$putih = "#FFFFFF";
if($kelamin1 == "Pria"){
$latar1 = $kelabu;
}else{
$latar1 = $putih;
}
if($kelamin2 == "Pria"){
$latar2 = $kelabu;
}else{
$latar2 = $putih;
}
if($kelamin3 == "Pria"){
$latar3 = $kelabu;
}else{
$latar3 = $putih;
}
if($kelamin4 == "Pria"){
$latar4 = $kelabu;
}else{
$latar4 = $putih;
}
$output = "
<table border=1>
<tr>
<td background=$latar1>$nama1</td>
</tr>
<tr>
<td background=$latar2>$nama2</td>
</tr>
<tr>
<td background=$latar3>$nama3</td>
</tr>
<tr>
<td background=$latar4>$nama4</td>
</tr>
</table> ";
echo($output);
?>
switch -- case
konstruksi switch dapat dijelaskan sebagai berikut:
switch(a){ case 1;
// statement 1 goes here break; case 2;
// statement 2 goes here break; case 3;
// statement 3 goes here break; default;
// statement 4 goes here break;
}
// statement 5 goes here
Aliran program:
1. Variabel a diperiksa
2. Statement dieksekusi
a) Apabila a == 1, statement 1 dijalankan
b) Apabila a == 2, statement 2 dijalankan
c) Apabila a == 3, statement 3 dijalankan
d) Apabila a tidak memenuhi 2a - 2c, statement 4 dijalankan
3. Statement 5 dijalankan
Keyword break memegang peranan penting di sini. Fungsinya adalah mencegah fall-through, bandingkan dengan program berikut(break di baris ke 5 dihilangkan).
switch(a){ case 1;
// statement 1 goes here case 2;
// statement 2 goes here break; case 3;
// statement 3 goes here break; default;
// statement 4 goes here break;
}
Aliran program:
1. variabel a diperiksa
2a. Apabila a == 1, statement 1 dijalankan, kemudian menjalankan statement 2.
2b. Apabila a == 2, statement 2 dijalankan
2c. Apabila a == 3, statement 3 dijalankan
2d. Apabila a tidak memenuhi 2a - 2c, statement 4 dijalankan
2. Statement 5 dijalankan
Perbedaan ada pada langkah 2a. Bandingkan dengan listing pertama. Untuk melihat contoh penggunaan switch -- case, tambahkan tampilan pada control_flow.htm menjadi seperti gambar di bawah.

Buat file switchDemo.php sebagai berikut:
<?php switch($bulan){
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 : $hari = 31;
break;
case 4 :
case 6 :
case 8 :
case 11 : $hari = 30;
break;
case 2 :
if(($tahun%4) == 0){
$hari = 29;
}else{
$hari = 28;
}
}
echo("<h2>Jumlah hari pada bulan $bulan tahun $tahun =
$hari hari</h2>");
?>