Cara Mengubah Tipe Data PHP (Type Juggling dan Type Casting)

Pengertian Type Juggling dalam PHP

PHP merupakan bahasa pemograman yang tidak terlalu ketat dalam aturan tipe data (dimana sebuah variabel dapat diisi dengan berbagai tipe data). Hal ini memberikan kemudahan penulisan, namun juga mendatangkan permasalahan tersendiri. Terkadang PHP mengubah tipe data suatu variabel menjadi tipe data lainnya secara tidak langsung tanpa kita instruksikan.

Jika anda telah mengikuti tutorial PHP di duniailkom tentang pembahasan tipe data dan operator, maka beberapa kali kita telah membuat kode program yang “memaksa” suatu tipe data berfungsi sebagai tipe data lainnya.

Perhatikan kode program php berikut:

Dalam kode diatas, saya mendefenisikan variabel $a sebagai integer (angka) dan variabel $b sebagai string. Operasi penambahan seharusnya membutuhkan 2 inputan berupa angka, namun seperti yang terlihat ketika program dijalankan, PHP dengan senang hati akan menjalankan perintah tersebut tanpa mengeluarkan error. 12+”9 kucing” akan menghasilkan nilai 21.

Proses perubahan tipe data ini dikenal dengan istilah type juggling. Type Juggling dalam PHP adalah sebuah proses untuk menentukan jenis tipe data yang “cocok” dengan operasi saat itu, dan PHP akan menkonversinya secara langsung.

PHP akan mencoba “menebak” dan mengubah tipe data agar disesuaikan dengan peruntukannya. Misalkan operator aritmatika seharusnya membutuhkan 2 buah inputan (atau operand) yang bertipe angka (baik berupa integer maupun float). Namun apabila salah satu atau kedua operand itu bukan bertipe angka, maka PHP akan mengkonversinya menjadi angka.

Seperti contoh program diatas, string “9 kucing” akan dikonversi menjadi angka. Dan menghasilkan angka 24 (aturan pengkonversian ini akan kita bahas sesaat lagi).

Sebagai contoh lainnya, perhatikan kode PHP berikut ini:

<?php
   $a=12;
   $b="9 kucing";
   echo $a AND $b;
?>

Nilai dari variabel $a dan $b masih sama dengan contoh saya yang pertama, namun kali ini saya membuat operator logika AND sebagai operasi yang akan diproses. Dan jika anda menjalankan program diatas, di browser akan tampil angka 1. Dari manakah angka 1 ini berasal?

Operator AND membutuhkan 2 inputan bertipe boolean, yakni nilai TRUE atau FALSE. Namun karena saya menggunakan tipe integer “12” dan type string “9 kucing”, maka kedua operand ini akan dikonversi menjadi TRUE. Karena TRUE AND TRUE adalah TRUE, maka hasil $a AND $b pada contoh program diatas adalah TRUE.

Namun proses type juggling PHP belum selesai, karena perintah echo membutuhkan inputan berupa string, bukan nilai boolean TRUE. Dan PHP akan mengkonversi boolean TRUE menjadi string “1”.

Pemahaman tentang type juggling dalam PHP ini akan membantu kita untuk menghindari error kode program karena perubahan tipe data yang tidak terdeteksi.

Sumber : https://www.webhozz.com/blog/cara-mengubah-tipe-data-php-type-juggling-dan-type-casting/

admin