PHP Casting

PHP Casting: Complete Beginner to Advanced Guide

At phponline.in, we aim to make PHP concepts crystal clear. This guide covers PHP casting (also called type casting or type conversion) from beginner to advanced level. By the end, you’ll understand how to convert variables between different data types effectively, using both explicit casting and implicit type juggling.


You will learn

  1. Introduction to PHP Casting
  2. Why Type Casting is Important
  3. PHP Data Types Recap
  4. Implicit Casting (Type Juggling)
  5. Explicit Casting in PHP
  6. Integer Casting
  7. Float Casting
  8. String Casting
  9. Boolean Casting
  10. Array Casting
  11. Object Casting
  12. Null Casting
  13. Casting and Functions
  14. Casting with Type Declarations in PHP 7 and 8
  15. Real-World Casting Examples
  16. Common Casting Mistakes
  17. PHP Type Comparison vs. Casting
  18. Performance Considerations
  19. Internal Backlinks
  20. Frequently Asked Questions

1. Introduction to PHP Casting

Casting is the process of changing the data type of a variable in PHP. For example, converting a string like "123" into an integer 123.

PHP is loosely typed, meaning it can automatically change types based on context. However, you can manually control this with casting.


2. Why Type Casting is Important

  • Ensures data is in the correct format for calculations
  • Prevents unexpected results from type juggling
  • Improves code readability and intent

Example:

$value = "10 apples";
$intValue = (int)$value; // 10

3. PHP Data Types Recap

Before diving into casting, here are PHP’s main data types:

  • Integer
  • Float
  • String
  • Boolean
  • Array
  • Object
  • NULL
  • Resource

4. Implicit Casting (Type Juggling)

PHP can automatically convert values:

$x = "5" + 3; // PHP converts "5" to integer 5

This flexibility is convenient but can cause unexpected bugs.


5. Explicit Casting in PHP

Explicit casting forces a value into a specific type:

$intVal = (int)$var;
$floatVal = (float)$var;
$stringVal = (string)$var;

Syntax:

$newVar = (type)$oldVar;

6. Integer Casting

$val = "123";
$intVal = (int)$val; // 123

If the string contains non-numeric characters, casting stops at the first invalid character:

$val = "123abc";
$intVal = (int)$val; // 123

7. Float Casting

$val = "10.56";
$floatVal = (float)$val; // 10.56

Casting to float is useful for currency or precise decimal calculations.


8. String Casting

$num = 123;
$str = (string)$num; // "123"

Useful for concatenation and output.


9. Boolean Casting

$val = 0;
$bool = (bool)$val; // false

Rules:

  • 0, 0.0, "", NULL, and empty arrays become false
  • Everything else becomes true

10. Array Casting

$val = "Hello";
$arr = (array)$val; // array with single element

Converts a variable into an array.


11. Object Casting

$arr = ["name" => "John"];
$obj = (object)$arr; // stdClass object

12. Null Casting

You can cast any value to NULL:

$val = 100;
$nullVal = (unset)$val; // NULL

13. Casting and Functions

You can cast function results:

$sum = (float)(5 / 2); // 2.5

14. Casting with Type Declarations in PHP 7 and 8

PHP allows type declarations for function parameters and return values:

function addNumbers(int $a, int $b): float {
    return $a + $b;
}

If wrong type is passed, PHP may attempt to cast it (in weak mode) or throw a TypeError (in strict mode).


15. Real-World Casting Examples

  • Form data processing
  • API response handling
  • Database query results conversion
  • JSON decoding to objects or arrays

16. Common Casting Mistakes

  • Assuming is_numeric() means value is safe to cast
  • Forgetting about locale settings in float conversion
  • Overusing implicit casting without validation

17. PHP Type Comparison vs. Casting

Casting changes the type of a value, whereas type comparison checks if two values are the same type using ===.


18. Performance Considerations

Casting is generally fast, but unnecessary casting can slow down loops or large data processing.


Internal Backlinks


PHP casting, PHP type conversion, PHP integer casting, PHP float casting, PHP string casting, PHP array casting, PHP object casting, PHP tutorial

Frequently Asked Questions

What is the difference between implicit and explicit casting in PHP?

Implicit casting is automatic by PHP, explicit casting is done manually by the programmer.

How do I cast a string to an integer in PHP?

Use (int)$string or intval($string).

Can I cast arrays to objects in PHP?

Yes, using (object)$array.

What happens if I cast NULL to another type?

It becomes the empty value for that type.

Does casting affect the original variable?

No, casting returns a new value without changing the original variable.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments