Menyingkat Kode PHP menggunakan Operator Ternary (?:)
Salah satu konsep dasar pemrograman yang penting adalah pernyataan bersyarat, atau lebih dikenal dengan istilah percabangan. Percabangan adalah suatu kondisi yang dipakai oleh bahasa pemrograman untuk mengatur alur logika program. Dalam bahasa pemrograman PHP setidaknya dikenal 2 macam percabangan, yaitu if/else
dan switch/case
.
Percabangan dengan if/else
dapat disederhanakan menggunakan operator ternary. Contoh operator ternary bisa dijumpai pada artikel ini, ini, dan ini. Operator ternary memiliki bentuk dasar sebagai berikut:
(pernyataan1) ? (pernyataan2) : (pernyataan3)
Bentuk di atas memiliki arti: jika “pernyataan1” adalah benar, nilai kembalian adalah “pernyataan2”, dan jika sebaliknya, nilai kembalian adalah “pernyataan3”. Untuk lebih jelasnya, perhatikan contoh berikut.
<?php $var = 7; $cek_var = $var > 5 ? true : false;
Pada contoh di atas nilai variable $cek_var
adalah true
, karena pernyataan nilai $var
lebih besar dari 5 adalah benar. Berikut ini adalah padanannya dalam bentuk if/else
.
<?php $var = 7; if ($var > 5) $cek_var = true; else $cek_var = false;
Contoh aplikasi di dunia nyata adalah seperti yang biasa digunakan untuk memberikan nilai default pada sebuah variable.
<?php $action = !isset($_POST['action']) ? 'default' : $_POST['action'];
Kode di atas identik dengan:
<?php if (!isset($_POST['action'])) { $action = 'default'; } else { $action = $_POST['action']; }
Bonus:
Operasi menghitung jumlah hari (termasuk memeriksa tahun kabisat) dalam satu bulan menggunakan operator ternary bertingkat.
<?php $bulan = 2; // bulan Februari $tahun = 2012; // ini tahun kabisat $jumlah_hari = ($bulan == 2 ? ($tahun % 4 ? 28 : ($tahun % 100 ? 29 : ($tahun %400 ? 28 : 29))) : (($bulan - 1) % 7 % 2 ? 30 : 31)); echo $jumlah_hari;
Pingback: Troubleshooting "Unexpected T_ECHO" pada Operator Ternary | Sibudi </>
Pingback: Operator Ternary dan Nilai Boolean | Sibudi </>