Belajar PHP: Bekerja Dengan Tipe Data String PHP Part 1
Belajar Bekerja Dengan Tipe Data String PHP
String Concatenation
Sesuai namanya, concatenation berarti penggabungan. Dengan demikian, string concatenation berarti penggabungan string atau variabel yang berisi teks sehingga menjadi satu kesatuan. Pada PHP, kita dapat menyematkan tanda .
sebagai operator string concatenation di antara kedua string atau variabel yang hendak digabungkan pada echo
atau print
.
Berikut adalah contoh penerapannya:
<?php
$name = 'Regg';
$address = 'Jl. Cemara' . ' ' . 'No. 7A';
$city = 'Medan';
$regency = 'Sumatra Utara';
$separator = ' - ';
echo 'Halo! Nama saya' . $name . '. Saya tinggal di ' . $address;
# ↓ ↓
# Halo! Nama saya Regg . Saya tinggal di Jl. Cemara No. 7A
print $city . $separator . $regency;
# ↓ ↓ ↓
# Medan - Sumatra Utara
?>
Halo! Nama saya Regg. Saya tinggal di Jl. Cemara No. 7A
Medan - Sumatra Utara
Sama seperti string concatenation, kita juga dapat menggunakan echo
tanpa tanda kurung untuk menggabungkan beberapa string atau variabel yang berisi teks menggunakan tanda ,
.
Berikut adalah contoh penerapannya:
<?php
$name = 'Regg';
$address = 'Jl. Cemara' . ' ' . 'No. 7A';
$city = 'Medan';
$regency = 'Sumatra Utara';
$separator = ' - ';
echo 'Halo! Nama saya', $name, '. Saya tinggal di ', $address;
# ↓ ↓
# Halo! Nama saya Regg . Saya tinggal di Jl. Cemara No. 7A
echo $city, $separator, $regency;
# ↓ ↓ ↓
# Medan - Sumatra Utara
?>
Halo! Nama saya Regg. Saya tinggal di Jl. Cemara No. 7A
Medan - Sumatra Utara
Pada keadaan tertentu, menggunakan echo
dengan tanda ,
lebih menguntungkan dibandingkan dengan menggunakan echo
dengan tanda .
. Hal ini dikarenakan penggunaan tanda ,
akan menampilkan output berdasarkan urutan parameter yang diberikan. Sedangkan, penggunaan tanda .
akan memperhatikan presedensi operator.
Dengan memperhatikan presedensi operator, ekspresi yang memiliki operasi dengan presedensi prioritas akan dieksekusi. Hal ini mengakibatkan hasil output tidak sesuai dengan harapan. Untuk mengatasi hal ini, kita dapat memanfaatkan tanda kurung untuk melakukan manipulasi presedensi.
Perhatikan contoh berikut!
<?php
$name = 'Steven';
$short_name = 'Stev';
$age = 2020 - 2001;
echo 'Hello ', strlen($name) > 4 ? $name : 'World', '!', ' Age: ', $age + 6;
# |---------------------↓-----------| |---↓---|
# Hello Steven ! Age: 25
echo 'Hello ', strlen($short_name) > 4 ? $short_name : 'World', '!', ' Age: ', $age + 6;
# |------------------------------------------↓--| |---↓---|
# Hello World ! Age: 25
// String concatenation menggunakan tanda . dieksekusi berdasarkan presedensi
// sehingga hasil penggabungan tidak sesuai harapan!
echo 'Hello ' . strlen($name) > 4 ? $name : 'World' . '!' . ' Age: ' . $age + 6;
# |---↓---|
# 25
echo 'Hello ' . (strlen($name) > 4 ? $name : 'World') . '!' . ' Age: ' . ($age + 6);
# |----------------------↓------------| |----↓---|
# Hello Steven ! Age: 25
?>
Hello Steven! Age: 25
Hello World! Age: 25
25
Hello Steven! Age: 25
String Interpolation
Selain menggunakan string concatenation, kita juga dapat menggunakan string interpolation untuk menginterpolasi (menyisipkan) sebuah variabel ke dalam string. PHP akan melakukan interpretasi variabel dan mengganti variabel dengan nilainya saat memroses string. String interpolation hanya dapat bekerja pada sintaks tanda kutip dua atau heredoc.
Berikut adalah contoh penerapannya:
<?php
$item = 'buku';
$count = 3;
echo "Stok $item terdapat $count buah.";
# ↓ ↓
# Stok buku terdapat 3 buah.
// Penggunaan single quote menyebabkan variabel
// $item dan $count ditampilkan tanpa diinterpretasi.
echo 'Stok $item terdapat $count buah.';
# Stok $item terdapat $count buah.
?>
Stok buku terdapat 3 buah.
Stok $item terdapat $count buah.
Dalam string interpolation juga mendukung penggunaan format sintaks kompleks (curly) yang bertujuan untuk membungkus variabel dalam tanda kurung kurawal. Penggunaan tanda ini sangat bermanfaat untuk menghilangkan ambiguitas antara konteks penggunaan variabel dan string secara bersamaan.
Perhatikan contoh berikut!
<?php
$ticket_price = 100000;
echo "Tiket seminar tersebut dibandrol seharga Rp{$ticket_price}an!";
# ↓
# Tiket seminar tersebut dibandrol seharga Rp 100000 an!
// Baris ini menghasilkan pesan error
// karena variabel $ticket_pricesan tidak dideklarasi
echo "Tiket seminar tersebut dibandrol seharga Rp$ticket_pricesan!";
# Notice: Undefined variable: ticket_pricesan
Hal utama yang perlu diperhatikan adalah penggunaan format sintaks kompleks hanya akan memroses variabel yang diawali dengan tanda $
dalam string interpolation. Dengan demikian, sintaks ini tidak dapat memroses ekspresi apapun. Apabila hendak menggabungkan string dengan ekspresi, kita dapat kembali memanfaatkan string concatenation.
Perhatikan contoh berikut!
<?php
$first_number = 100;
$second_number = 20;
$numbers = [1, 2, 3, 4, 5];
// Ekspresi tidak dapat diinterpolasi
echo "1996 + 2001 = {1996 + 2001}";
# 1996 + 2001 = {1996 + 2001}
echo "1996 + 2001 = ", 1996 + 2001;
# ↓
# 1996 + 2001 = 3997
// Baris ini menghasilkan pesan error
// karena variabel operator + tidak dikenali dalam interpolasi
echo "$first_number + $second_number = {$first_number + $second_number}";
# Parse error: syntax error, unexpected '+', expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
echo "$first_number + $second_number = " . ($first_number + $second_number);
# ↓ ↓ ↓
# 100 + 20 = 120
// Fungsi tidak dapat diinterpolasi
echo "Hasil akar dari angka 100 adalah {sqrt(100)}";
# Hasil akar dari angka 100 adalah {sqrt(100)}
echo "Hasil akar dari angka 100 adalah " . sqrt(100);
# ↓
# Hasil akar dari angka 100 adalah 10
echo "Akses indeks ke-3 pada array numbers adalah {$numbers[3]}.";
# ↓
# Akses indeks ke-3 pada array numbers adalah 4 .
?>
1996 + 2001 = {1996 + 2001}
1996 + 2001 = 3997
Parse error: syntax error, unexpected '+', expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
100 + 20 = 120
Hasil akar dari angka 100 adalah {sqrt(100)}
Hasil akar dari angka 100 adalah 10
Akses indeks ke-3 pada array numbers adalah 4.
Heredoc dan Nowdoc
1. Heredoc
Heredoc adalah cara lain penulisan string pada PHP yang lebih sederhana. Dengan heredoc, kita dapat seolah-olah menulis string dengan double quote tanpa harus menambahkan escape character pada tanda kutip dua. Tag pembuka heredoc dimulai dengan tanda <<<
dan diikuti dengan sebuah identifier, serta diakhiri dengan nama identifier yang sama. Peletakan akhir identifier pada heredoc harus diletakkan pada baris baru tersendiri.
Penulisan identifier memiliki kaidah tidak boleh terdapat white spaces baik sebelum maupun sesudah penulisan identifier. Pada akhir identifier juga diakhiri dengan tanda ;
.
<?php
$first_sentence = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed hendrerit enim, id feugiat erat.";
$lorem = <<<LOREM
$first_sentence "Maecenas at urna quis nulla efficitur convallis." Integer ultricies lorem ac odio dictum sodales. In eleifend lacus lorem, ac finibus nulla imperdiet a.
LOREM;
echo $lorem;
?>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed hendrerit enim, id feugiat erat. "Maecenas at urna quis nulla efficitur convallis." Integer ultricies lorem ac odio dictum sodales. In eleifend lacus lorem, ac finibus nulla imperdiet a.
2. Nowdoc
Pada konsepnya, penerapan nowdoc hampir sama seperti heredoc. Hal yang membedakan adalah nowdoc berperan seperti versi tanda kutip satu pada heredoc. Hal ini berarti nowdoc tidak melakukan interpretasi terhadap variabel dan escape character.
Penulisan nowdoc pun hampir sama seperti heredoc. Namun, identifier pada nowdoc diapit dengan tanda kutip satu.
Perhatikan contoh berikut:
<?php
$first_sentence = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed hendrerit enim, id feugiat erat.";
$lorem = <<<'LOREM'
$first_sentence "Maecenas at urna quis nulla efficitur convallis." Integer ultricies lorem ac odio dictum sodales. In eleifend lacus lorem, ac finibus nulla imperdiet a.
LOREM;
echo $lorem;
?>
$first_sentence "Maecenas at urna quis nulla efficitur convallis." Integer ultricies lorem ac odio dictum sodales. In eleifend lacus lorem, ac finibus nulla imperdiet a.
Lanjut Part 2 ==> Belajar PHP: Bekerja Dengan Tipe Data String PHP Part 2
Posting Komentar untuk "Belajar PHP: Bekerja Dengan Tipe Data String PHP Part 1"