PHP เป็นภาษาที่ยืดหยุ่นเรื่องตัวแปรมาก เราใช้ตัวแปรได้โดยไม่ต้องประกาศก่อน และประกาศตัวแปรได้โดยไม่ระบุประกาศชนิดของตัวแปร (variable’s type) ทำให้เขียนได้สะดวก เพราะ PHP จะเลือกชนิดของตัวแปรให้อัตโนมัติ แต่บางครั้งก็ก่อให้เกิดปัญหา เช่น สับสนระหว่าง ค่า 1 หรือ true บางครั้งอาจจะใช้วิธี คูณ หรือ บวกบังคับให้เป็นตัวเลข ความจริง PHPสามารถเปลี่ยนชนิดตัวแปรได้โดยการ casting ตัวแปร (PHP เรียกว่า Type Juggling) ทำโดยการระบุชนิดตัวแปรไปข้างหน้า เช่น
<?php $foo = 10; // $foo เป็น integer $bar = (boolean) $foo; // $bar เป็น boolean ?>
| คำสั่ง | ชนิดตัวแปร |
| (int), (integer) | integer |
| (bool), (boolean) | boolean |
| (float), (double), (real) | float |
| (string) | string |
| (array) | array |
| (object) | object |
| (unset) | NULL |