PHP tidak memerlukan pendefinisian variabel, tipe data akan secara otomatis berubah oleh operator yang digunakan, karena PHP menggunakan Type Juggling. Tetapi selain menggunakan Type Juggling, PHP juga menggunakan Type Casting, yang dapat menentukan secara manual tipe data yang dimaksud.

Type Juggling


Type Juggling merupakan behaviour atau sifat dari variabel PHP yang akan secara otomatis mengubah tipe data dari variabel tersebut tergantung dari operator yang digunakan ketika memasukan isi dari variabel tersebut.











Bila data di set dengan operator integer seperti tambah, kurang atau kali (bintang), maka data akan berubah menjadi integer, begitu juga bila di set dengan operator string seperti petik[ganda] ",' atau titik untuk penghubung string.





Lihat Source Code
<?php
# $foo adalah string
$foo = "0";

# $foo sekarang menjadi Integer karena ditambah 2
$foo += 2;

# $foo sekarang menjadi Float/Real
$foo = $foo + 1.3;

# $foo menjadi integer (15)
$foo = 5 + "10 dan sedikit string";

# $foo menjadi string "510 dengan String"
$foo = 5 . "10 dengan String";

# $foo menjadi Array("ini Array")
$foo[0] = "ini Array";
?>



Type Casting





Tipe data dapat dirubah sesuai keinginan kita dengan menggunakan perintah Type Casting. Perintah-perintah Type Casting diantaranya:
(int) , (integer) - Merubah Menjadi Integer

(bool) , (boolean) - Merubah Menjadi Boolean

(float) , (double), (real) - Merubah Menjadi Float/Real

(string) - Merubah Menjadi String

(array) - Merubah Menjadi Array

(object) - Merubah Menjadi Objek





Catatan: Tab dan Spasi diperbolehkan didalamnya.





Contoh:


Lihat Source Code
<?php
$foo = (int) $var;

# Menggunakan Spasi pada perintah type casting
$foo = ( int ) $var;
?>





Contoh penggunaan Type Casting:


Lihat Source Code
<?php
# $foo adalah integer
$foo = 10;

# $str adalah string
$str = "$foo";

# $fst adalah string yang berisi "10"
$fst = (string) $foo;
?>



Jenis-Jenis Tipe Data dalam PHP


Tipe Data dalam PHP dibagi menjadi tiga bagian, yaitu Scalar Type, Compound Type,dan Special Type.



Scalar Type


Scalar Type adalah tipe data yang hanya memuat satu data dalam variabel. Tipe Data yang termasuk kedalam Tipe Scalar adalah:





1. Boolean


Tipe Data ini adalah tipe data yang paling sederhana. Hanya berupa true atau false. Cara memasukan ke dalam variabel adalah dengan memberikan nilai true atau false pada variabel tersebut, seperti dalam Contoh berikut:





Lihat Source Code
<?php
# $foo akan berisi boolean TRUE
$foo = true;
?>











Setiap Tipe Data dalam PHP mempunyai Boolean untuk melakukan Seleksi Kondisi. dan Tipe Data tersebut akan memberikan nilai true atau false pada seleksi kondisi tersebut.

Pada Variabel yang bertipe Data integer=0 (nol) mempunyai boolean false, selain itu true.
Pada Variabel yang bertipe Data float=0.0 (nol) mempunyai boolean false, selain itu true.
Pada Tipe Data string yang kosong, dan string="0" mempunyai boolean false, selain itutrue.
Array yang tidak mempunyai element mempunyai boolean false, selain itu true.
Objek yang tidak mempunyai member mempunyai boolean false, selain itu true.
Tipe NULL dan Variabel yang belum terisi mempunyai boolean false.





2. Integer


Integer merupakan Tipe Data yang berisikan bilangan bulat negatif dan positif atau tanpa ada nilai pecahan.











3. Float/Real


Float merupakan Tipe Data yang berisikan bilangan real negatif dan positif atau yang memiliki nilai pecahan.





4. String


String merupakan Tipe Data yang berisikan satu atau kumpulan karakter.









Compound Type


Compound Type adalah Tipe Data yang dapat mempunyai lebih dari satu element. Tipe Data yang termasuk kedalam Tipe Compound adalah:





1. Array


Array atau Larik merupakan Tipe Compound Primitif, terdapat pada bahasa-bahasa pemrograman lain. Tipe Data ini dapat memuat beberapa element, dan Isi Data untuk element array tersebut juga bisa bertipe array dan tipe scalar, compound atau special.








2. Object


Tipe Data ini adalah tipe data baru pada PHP yang dapat digunakan untuk membangun suatu program web yang berbasiskan object oriented. Isi dari Tipe Data ini bisa berupa Fungsi dan Variabel dan bisa terdiri dari beberapa element.






Special Type


Ada dua Tipe Data yang termasuk kedalam Special Type. Keduanya mempunyai ciri khas yang tidak dapat dimasukan kedalam Scalar ataupun Compound. Tipe Data yang termasuk kedalam Tipe Special adalah:








1. NULL


NULL adalah Tipe Data yang tidak memuat apapun. Setiap Variabel yang diset menjadi Tipe Data NULL ini akan menjadikan Variabel tersebut kosong, seperti dalam penggunaan fungsi unset(). Cara untuk menset Variabel menjadi NULL adalah dengan

memasukan nilai NULL pada variabel yang dimaksud seperti pada Contoh berikut:





Lihat Source Code
<?php
# Nilai awal $foo adalan 10
$foo = 10;

# $foo akan menjadi NULL
$foo = NULL;

# Sama dengan memanggil unset()
unset($foo);
?>





2. Resource


Tipe Data Spesial yang satu ini di khususkan untuk menyimpan resource, sumber atau alamat. Variabel tersebut hanya dapat diciptakan oleh suatu fungsi khusus yang mengembalikan nilai berupa resource seperti penggunaan fungsi fopen, opendir,

mysql_connect, mysql_query dan semacamnya.











Untuk mengetahui fungsi-fungsi apa saja yang mengembalikan nilai berupa resource, lihat dalam PHP Manual padaAppendices tentang Resource.



Kesimpulan


PHP merupakan Bahasa Pemrograman yang bersifat Fleksibel dan mudah untuk dipelajari tanpa mengesampingkan kehandalan dari PHP itu sendiri. Dengan adanya Type Juggling programmer dimanjakan dengan kemudahan dalam pengaksesan variabel, tapi PHP tidak dengan begitunya mengesampingkan cara pengaksesan lain pada tipe data yang pada dasarnya memang berbeda untuk setiap data dalam variabel, oleh karena itu Type Casting tetap di kenal di dalam PHP.