[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

  • =& 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
    "; $b = $a; echo $a; echo $b;

    hasilnya adalah

    satu
    satu

    apa jadinya jika isi variable $a kemudian kita ubah:

    $a = "satu
    "; $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
    "; $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
    
    

    Akan berbeda hasil dengan

    
    

    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