Tipe data dalam php bersifat dinamis, dimana data yang tersimpan di dalam variabel akan secara otomatis berubah tipe sesuai dengan operator yang digunakan ketika eksekusi suatu operasi. Istilah berubah-ubahnya tipe data variabel ini sering disebut sebagai Type Juggling. Tetapi selain Type Juggling, variabel dalam PHP juga dapat didefinisikan secara manual dengan menggunakan Casting.

Type Juggling

Type Juggling merupakan sifat dari variabel PHP yang akan secara otomatis mengubah tipe data dari variabel tersebut tergantung dari operator yang digunakan ketika memasukan (assignment) data kedalam variabel tersebut.

Bila data di set dengan operator integer seperti pertambahan, pengurangan atau perkalian, maka data akan berubah menjadi integer, begitu juga bila di set dengan operator string seperti petik ( ” ‘ ) atau titik untuk penghubung string, maka tipe data-nya akan berubah menjadi string.

Berikut contoh penggunaan type juggling:

<?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 yang akan dimasukkan kedalam variabel dapat dirubah sesuai kebutuhan dengan melakukan Casting. Berikut adalah listing operator untuk melakukan casting tipe data dalam PHP:

  • (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

Berikut contoh penggunaan type casting:

<?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 utama, yaitu Scalar, Compound dan Special.

Scalar

Scalar merupakan tipe data yang hanya memuat satu data didalam variabel. Tipe Data yang termasuk kedalam Tipe Scalar adalah Boolean, Integer, Float/Real, dan String.

Boolean

Boolean merupakan tipe data yang paling sederhana. Hanya dapat berisikan true atau false. Cara memasukan ke dalam variabel adalah dengan memberikan nilai true atau false pada variabel tersebut, seperti dalam Contoh berikut:

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

Setiap Tipe Data dalam PHP mempunyai nilai Boolean yang berguna ketika melakukan logical operation seperti Seleksi Kondisi. Berikut adalah kondisi nilai boolean pada tiap-tiap tipe data:

  • 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 itu true.
  • 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.

Integer, Float dan Real

Integer merupakan tipe data yang berisikan bilangan bulat negatif dan positif atau tanpa ada nilai pecahan, sedangkan float dan real merupakan tipe data yang berisikan bilangan negatif dan positif yang memiliki nilai pecahan.

String

String merupakan Tipe Data yang berisikan satu karakter atau kumpulan karakter. PHP tidak mengenal tipe data karakter, semua data yang memiliki karakter akan didefinisikan sebagain string.

Compound

Compound merupakan tipe data yang dapat mempunyai lebih dari satu elemen. Yang termasuk tipe data compound diantaranya Array dan Object.

Array

Array atau Larik merupakan compound primitif, terdapat pada bahasa-bahasa pemrograman lain. Tipe data ini dapat memuat beberapa elemen, dan isi data untuk element array tersebut juga bisa ber-tipe array, tipe-tipe scalar, object ataupun tipe-tipe special. PHP Mendukung Array dengan index numerik maupun index string.

Object

Object merupakan tipe compound yang dapat digunakan untuk pemrograman berbasis object oriented. Object merupakan instance dari suatu Class, dan memiliki element yang dapat dipanggin dengan operator ->.

Special Type

Terdapat dua tipe data yang termasuk kedalam Special Type yaitu Null dan Resource. Keduanya mempunyai ciri khas yang tidak dimiliki oleh Scalar ataupun Compound, karena isi data di dalam variabel dengan tipe ini tidak dapat digunakan secara langsung oleh PHP.

Null

NULL merupakan tipe data yang tidak memuat apapun. Setiap variabel yang diset menjadi NULL akan menjadikan variabel tersebut kosong, seperti hal nya menggunakan fungsi unset(). Tujuan utama adanya tipe data null adalah untuk menghapus isi variabel, atau menandakan bahwa hasil suatu proses tidak memiliki isi.

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

	# $foo akan menjadi NULL 
	$foo = NULL; 

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

Resource

Tipe data spesial ini di khususkan untuk menyimpan resourcesumber atau alamat dari native-function baik itu dari fungsi-fungsi standard ataupun fungsi-fungsi extension. Variabel tersebut hanya dapat diciptakan dan digunakan oleh fungsi-fungsi seperti fopenopendir, mysqli_connectmysqli_query dan fungsi-fungsi lain yang serupa.

Kesimpulan

PHP merupakan bahasa pemrograman fleksibel yang mudah untuk dipelajari tanpa mengesampingkan fungsionalitas dan kehandalan. Dengan adanya type juggling programmer dimanjakan dengan kemudahan dalam pengaksesan variabel, tetapi 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.