Operator = dan =& dalam PHP memiliki perbedaan. Operator = hanya menetapkan nilai sedangkan =& menetapkan referensi sehingga perubahan pada variabel satu akan mempengaruhi variabel lain. Operator lain seperti == untuk perbandingan, =. untuk menambahkan string, &= untuk operasi bitwise, dan === untuk perbandingan tipe data juga dibahas singkat.
1. [Tips] Beda Operator = dan =& dalam PHP
Seringkali dalam sebuah kode akan kita jumpai kode seperti ini :
.
$variable =& filter($string);
Atau
$val =& $ret;
Sebenarnya apa bedanya “=&” dengan tanda “=” biasa?
Tanda “=” dapat dikombinasikan dengan beberapa tanda lain sehingga membentuk operator baru.
Antara lain adalah:
• = berarti memasukkan suatu nilai, dari operand sebelah kanan ke sebelah kiri. Sebagai contoh
adalah
$a = 1;
Artinya memasukkan nilai 1 terhadap variabel $a.
• == berari adalah memberikan suatu perbandingan. Jika sebelah kiri sama dengan sebelah kanan.
Misal:
if( $a==1 ){
echo $a;
}else{
echo "not 1";
}
Tanda perbandingan juga akan dapat digunakan dengan kombinasi = dan < atau >. =< artinya
bahwa sebelah kiri kurang dari atau sama dengan. Sedangkan => adalah jika tanda sebelah kiri
lebih dari atau sama dengan kanan.
Contoh lain :
$i = 1;
while( $i<=100 ){
echo $i;
$i++;
}
• =. Artinya adalah memasukkan value string lanjutan pada variable yang ada sebelumnya. Misal:
$a = "Satu ";
$a =. "Dua ";
$a =. "Tiga ";
echo $a;
Akan menghasilkan : Satu Dua Tiga
2. • =& Artinya adalah memasukkan sebuah value yang isinya akan berubah sesuai dengan isi
referensi variabel sebelumnya. Tentu hal ini akan mudah dijelaskan dengan contoh berikut ini,
misal akan kita coba memasukkan isi dari variable $a sebagai value variable $b
$a = "satu<br />";
$b = $a;
echo $a;
echo $b;
hasilnya adalah
satu
satu
apa jadinya jika isi variable $a kemudian kita ubah:
$a = "satu<br />";
$b = $a;
$a = "dua";
echo $a;
echo $b;
Ternyata isi $a akan berubah menjadi “dua” dan isi $b tetap “satu”. Bagaimanakah agar isi B
juga berubah ketika A diubah? Yaitu dengan memberikan tanda =& pada saat memasukkan
value $a terhadap $b.
$a = "satu<br />";
$b =& $a;
$a = "dua";
echo $a;
echo $b;
Hasilnya adalah $b akan tetap sama meski $a berubah
• &= adalah merupakan kependekan dari sebuah proses operasi bitwise-operator and yang akan
sangat panjang dijelaskan disini karena melibatkan Biner Digit.
$a &= $b;
adalah singkatan dari proses
$a = $a & $b;
• === adalah hampir sama dengan ==, namun memiliki syarat bahwa sisi kiri operator harus sama
tipe datanya dengan sisi kanan
<?php
$a = 3;
if( $a === 3 ){
echo $a;
}else{
echo "no";
3. }
?>
Akan berbeda hasil dengan
<?php
$a = 3;
if( $a === '3' ){
echo $a;
}else{
echo "no";
}
?>
karena pada contoh kedua angka tiga diapit tanda kutip menunjukkan string, sedang contoh
pertama adalah numerik
Nah kira-kira sekian dulu, terimakasih yang sudah mengirimkan pertanyaan untuk inspirasi posting ini.
Semoga bermanfaat