- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
PHP Type Juggling
Definition and Usage
PHP is known as a dynamically typed language. Explicit type declaration of a variable is neither needed nor supported in PHP. Contrary to C, C++ and Java, type of PHP variable is decided by the value assigned to it, and not other way around. Further, a variable when assigned value of different type, its type too changes. This approach of PHP to deal with dynamically changing value of variable is called type juggling.
$var="Hello"; // variable is string type $var=100; //same variable now becomes int
Type juggling also takes place during calculation of expression. In this example, a string variable containing digits is automatically converted to integer for evaluation of addition expression
Example
<?php $var1=100; $var2="100"; $var3=$var1+$var2; var_dump($var3); ?>
Output
This will produce following result −
int(200)
If a string starts with digits, trailing non-numeric characters if any, are ignored while performing calculation. However, PHP parser issues a notice as shown below
Example
<?php $var1=100; $var2="100 days"; $var3=$var1+var2; var_dump($var3); ?>
Output
This will produce following result −
PHP Notice: A non well formed numeric value encountered in ... int(200)
Type casting forces a variable to be used as a certain type. Following script shows example of different type cast operators
Example
<?php $var1=100; $var2=(boolean)$var1; $var3=(string)$var1; $var4=(array)$var1; $var5=(object)$var1; var_dump($var2, $var3, $var4, $var5); ?>
Output
This will produce following result −
bool(true) string(3) "100" array(1) { [0]=> int(100) } object(stdClass)#1 (1) { ["scalar"]=> int(100) }
Casting a variable to string can also be done by enclosing in double quoted string
Example
<?php $var1=100.50; $var2=(string)$var1; $var3="$var1"; var_dump($var2, $var3); ?>
Output
This will produce following result −
string(5) "100.5" string(5) "100.5"
