- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- 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"