Pada kesempatan yang lalu kita telah membahas Cara Penulisan String Pada PHP dimana salah satu cara penulisannya menggunakan satu tanda kutip (single quote). Jika string yang kita tulis panjang dan didalam nya terdapat banyak satu tanda kutip, maka cara penulisan tersebut menjadi agak merepotkan karena kita harus melakukan escape (menuliskan \) untuk setiap tanda kutip yang kita tulis. untuk mengatasi hal tersebut, maka mulai PHP > 5.3.0 kita dapat menggunakan apa yang disebut nowdoc
I. Apa itu nowdoc pada PHP
Nowdoc merupakan cara lain penulisan string pada PHP dimana kita tidak perlu melakukan escape (menuliskan \) untuk setip satu tanda kutip yang kita tulis. Dengan nowdoc seolah olah kita menulis string dengan single quote namun tanpa harus melakukan escape pada satu tanda kutip (single quote) yang kita tulis.
II. Cara Penulisan Nowdoc pada PHP
Penulisan nowdoc harus memenuhi ketentuan sebagai berikut:
- Sama seperti Heredoc, nowdoc diawali dengan menuliskan operator
<<< dan
diikuti dengan identifier, namun identifier harus ditulis didalam satu tanda kutip (<<<'IDENTIFIER'
) penulisan identifier harus memenuhi syarat:- Hanya boleh menggunakan alphanumeric dan underscore.
- Tidak boleh diawali dengan angka maupun underscore.
- Antara operator
<<<
dan identifier boleh dipisah dengan spasi.
- Tulis string yang diinginkan pada baris baru setelah identifier.
- Nowdoc ditutup dengan identifier yang sama dan harus memenuhi syarat:
- Identifier penutup ditulis pada baris baru dan pada kolom pertama dan diikuti dengan semicolon (;), tidak ada spasi antara identifier dan semicolon.
- Sebelum atau sesudah identifier dan semicolon, tidak boleh ada karakter lain termasuk spasi atau indent, sehingga baris tersebut hanya berisi identifier dan semicolon.
III. Contoh Penulisan Nowdoc Pada PHP
Setelah dibahas mengenai cara penulisan nowdoc, berikut ini beberapa contoh penulisan nowdoc pada PHP:
<?php
$nama = 'agusph';
$str = <<<'MY_IDENT'
Contoh penulisan nowdoc pada PHP.
Menulis string tanpa escape (back slash) pada PHP.
Semuanya akan dianggap string
Contoh
- kata Jum'at dengan satu tanda kutip atau
Jum"at dengan dua tanda kutip
- variabel $nama
- object property: $siswa->nis
- object method: {$siswa->nilai()}
- array: $produk['jumlah']
MY_IDENT;
echo $str;
Contoh diatas menghasilkan output: Contoh penulisan nowdoc pada PHP. Menulis string tanpa escape (back slash) pada PHP. Semuanya akan dianggap string Contoh – kata Jum’at dengan satu tanda kutip atau Jum”at dengan dua tanda kutip – variabel $nama – object property: $siswa->nis – object method: {$siswa->nilai()} – array: $produk[‘jumlah’]
pada contoh diatas kita menggunakan identifier MY_IDENT, Tips: agar lebih mudah dibaca (terutama oleh programmer lain) sebaiknya kita menggunakan identifier yang sudah banyak digunakan, seperti EOT (End Of Text) atau EOD (End Of Data/Document)
Perhatikan juga bahwa semua yang ada di dalam blok nowdoc akan menghasilkan nilai apa adanya sesuai dengan yang kita tulis, tidak peduli apakah itu variabel (primitive, array atau object) maupun string.
VII. Contoh Penulisan Kode HTML dan SQL Dengan Nowdoc
Salah satu manfaat nowdoc adalah ketika menuliskan kode HTML dan SQL.
Contoh HTML:
<?php
$html = <<<'HTML'
<form method='post' action=''>
<h2>Browser favorit anda?</h2>
<input type='checkbox' id='chrome' name='chrome' value='chrome' CHECKED = 'CHECKED'/>
<label class='checkbox-small checked-small' for='chrome' >Google Chrome</label>
<input type='checkbox' id='firefox' name='firefox' value='firefox' CHECKED = 'CHECKED'/>
<label class='checkbox-small checked-small' for='firefox' >Firefox</label>
<input type='checkbox' id='ie' name='ie' value='ie' CHECKED = 'CHECKED'/>
<label class='checkbox-small checked-small' for='ie' >Internet Explorer</label>
<input type='checkbox' id='safari' name='safari' value='safari' CHECKED = 'CHECKED'/>
<label class='checkbox-small checked-small' for='safari' >Safari</label>
<input type='checkbox' id='opera' name='opera' value='opera' CHECKED = 'CHECKED'/>
<label class='checkbox-small checked-small' for='opera' >Opera</label>
<input type='submit' name='submit' value='Vote'>
</form>
HTML;
echo $html;
?>
Contoh SQL:
<?php
$sql = <<<'SQL'
SELECT CONCAT(byr.kd_plg, '-', byr.kd_kntr, '.', byr.kd_cab) AS id_plg,
plg.bentuk_hukum AS badan_hukum,
plg.nama, SUM(rutin_2014) AS rutin_2014, SUM(total_2014) AS total_2014, SUM(rutin_2015) AS rutin_2015, SUM(total_2015) AS total_2015, '-' AS growth_2014,
IF(tgl_daftar < '2015-00-00',
ROUND( (SUM(total_2015) - SUM(total_2014)) / ABS(SUM(total_2014)) * 100, 2 ),
0
) AS growth_2015
FROM byr
LEFT JOIN plg USING(kd_plg, kd_kntr, kd_cab)
WHERE kd_plg = '167625367'
SQL;
$stmt->prepare($sql);
$result = $stmt->execute();
Demikian pembahasan tentang nowdoc pada PHP, semoga dapat bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com