Bird
Raised Fist0
PHPprogramming~10 mins

Type coercion in operations in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Type coercion in operations
Start with operands
↓
Check operand types
↓
Apply type coercion rules
↓
Perform operation with coerced types
↓
Return result
PHP checks operand types, converts them if needed, then performs the operation and returns the result.
Execution Sample
PHP
<?php
$a = "5" + 3;
echo $a;
?>
Adds a string '5' and an integer 3, showing how PHP converts string to number before addition.
Execution Table
StepOperands BeforeType CoercionOperands AfterOperationResult
1"5" + 3String '5' converted to int 55 + 3Addition8
2Result stored in $aNo coercion needed$a = 8Assignment8
3echo $aOutput integer 8 as string8Output8
💡 Operation ends after echo outputs the result.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
$aundefined888
Key Moments - 2 Insights
Why does PHP convert the string "5" to a number before adding?
PHP automatically converts strings to numbers in arithmetic operations, as shown in execution_table row 1 where "5" becomes 5 before addition.
What happens if the string cannot be converted to a number?
If the string does not start with a number, PHP converts it to 0 before the operation, similar to the coercion step in execution_table row 1.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result after step 1?
A"5"3
B53
C8
DError
💡 Hint
Check the 'Operands After' and 'Result' columns in step 1 of the execution_table.
At which step does PHP convert the string to an integer?
AStep 1
BStep 2
CStep 3
DNo conversion happens
💡 Hint
Look at the 'Type Coercion' column in the execution_table.
If the string was "abc" instead of "5", what would be the result after addition?
A"abc3"
B3
CError
D0
💡 Hint
Recall PHP converts non-numeric strings to 0 before arithmetic, as explained in key_moments.
Concept Snapshot
PHP automatically converts operand types in operations.
Strings with numbers convert to integers or floats.
Non-numeric strings convert to 0.
Operations then proceed with coerced types.
Result is returned in the expected type.
Full Transcript
This example shows how PHP handles type coercion in operations. When adding a string containing a number to an integer, PHP converts the string to a number first. The code adds "5" and 3. PHP converts "5" to 5, then adds 3 to get 8. The result 8 is stored in variable $a and then printed. If the string cannot be converted to a number, PHP treats it as 0. This automatic conversion helps PHP perform operations smoothly even with mixed types.

Practice

(1/5)
1. In PHP, what happens when you add a string containing a number to an integer, like '5' + 3?
easy
A. PHP throws a type error because you can't add string and integer.
B. The result is the string '53' by concatenating '5' and '3'.
C. The string '5' is converted to the number 5, then added to 3, resulting in 8.
D. The operation returns null because of incompatible types.

Solution

  1. Step 1: Understand PHP type coercion in addition

    PHP automatically converts strings containing numbers to integers or floats when used in arithmetic operations.
  2. Step 2: Apply addition after conversion

    The string '5' becomes the integer 5, then 5 + 3 equals 8.
  3. Final Answer:

    8 -> Option C
  4. Quick Check:

    '5' + 3 = 8 [OK]
Hint: Strings with numbers convert to numbers in math operations [OK]
Common Mistakes:
  • Thinking PHP concatenates strings with + operator
  • Expecting a type error on mixed types
  • Assuming the result stays a string
2. Which of the following PHP expressions correctly adds a boolean true to an integer 2 and returns 3?
easy
A. (int)'true' + 2
B. true + 2
C. true . 2
D. 'true' + 2

Solution

  1. Step 1: Understand boolean to integer conversion

    In PHP, boolean true converts to integer 1 in arithmetic operations.
  2. Step 2: Evaluate each option

    (int)'true' + 2: (int)'true' is 0 + 2 = 2 (wrong). 'true' + 2: 'true' converts to 0 + 2 = 2 (wrong). true . 2: concatenation '12' (wrong). true + 2: 1 + 2 = 3 (correct).
  3. Final Answer:

    true + 2 -> Option B
  4. Quick Check:

    true + 2 = 3 [OK]
Hint: Boolean true acts as 1 in math operations [OK]
Common Mistakes:
  • Confusing string 'true' with boolean true
  • Using concatenation instead of addition
  • Not knowing boolean converts to 1 or 0
3. What is the output of the following PHP code?
$a = '10 apples';
$b = 5;
echo $a + $b;
medium
A. 105
B. 10 apples5
C. Error: Unsupported operand types
D. 15

Solution

  1. Step 1: Understand string to number conversion in arithmetic

    PHP converts the string '10 apples' to the number 10 by reading digits from the start until non-digit characters.
  2. Step 2: Perform addition

    10 + 5 equals 15, so echo outputs 15.
  3. Final Answer:

    15 -> Option D
  4. Quick Check:

    '10 apples' + 5 = 15 [OK]
Hint: Strings starting with numbers convert to those numbers in math [OK]
Common Mistakes:
  • Expecting string concatenation with +
  • Thinking it causes an error
  • Assuming the whole string converts to zero
4. Consider this PHP code snippet:
$x = '5 cats';
$y = 3;
$result = $x - $y;
echo $result;

Why might this code produce an unexpected result?
medium
A. PHP converts '5 cats' to 5, so 5 - 3 = 2, which might be unexpected if you expect string behavior.
B. Because subtraction is not defined for strings, it causes a fatal error.
C. The variable $result will be the string '5 cats3' due to concatenation.
D. PHP treats both as strings and outputs '5 cats3'.

Solution

  1. Step 1: Analyze subtraction with string and integer

    PHP converts the string '5 cats' to the number 5 for arithmetic operations.
  2. Step 2: Calculate the subtraction

    5 - 3 equals 2, so $result is 2, which may surprise if expecting string concatenation or error.
  3. Final Answer:

    PHP converts '5 cats' to 5, so result is 2 -> Option A
  4. Quick Check:

    '5 cats' - 3 = 2 [OK]
Hint: Subtraction forces string to number conversion [OK]
Common Mistakes:
  • Expecting string concatenation with - operator
  • Thinking it causes an error
  • Assuming result is a string
5. You want to compare two variables in PHP: $a = '0' (string) and $b = false (boolean). Which comparison returns true when using type coercion, and which returns false when checking type strictly?

Choose the correct pair:
hard
A. $a == $b is true; $a === $b is false
B. $a == $b is false; $a === $b is true
C. $a == $b is true; $a === $b is true
D. $a == $b is false; $a === $b is false

Solution

  1. Step 1: Understand loose (==) vs strict (===) comparison

    Loose comparison converts types before comparing; strict compares value and type exactly.
  2. Step 2: Evaluate comparisons

    Loose: '0' converts to 0, false converts to 0, so 0 == 0 is true. Strict: '0' is string, false is boolean, types differ, so false.
  3. Final Answer:

    $a == $b is true; $a === $b is false -> Option A
  4. Quick Check:

    '0' == false is true; '0' === false is false [OK]
Hint: Use === to check type and value, == allows type coercion [OK]
Common Mistakes:
  • Assuming == checks type strictly
  • Thinking '0' and false are always different
  • Confusing loose and strict equality
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard