Bird
Raised Fist0
PHPprogramming~20 mins

Type casting syntax in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PHP Type Casting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this PHP code with type casting?

Consider the following PHP code snippet. What will it output?

PHP
<?php
$value = "123abc";
$intValue = (int)$value;
echo $intValue;
?>
A123
B0
C123abc
DError
Attempts:
2 left
💡 Hint

When casting a string to int in PHP, it converts the initial numeric part.

❓ Predict Output
intermediate
2:00remaining
What is the output when casting a float to int in PHP?

What will this PHP code print?

PHP
<?php
$floatVal = 3.99;
$intVal = (int)$floatVal;
echo $intVal;
?>
A4
BError
C3.99
D3
Attempts:
2 left
💡 Hint

Casting float to int truncates the decimal part.

❓ Predict Output
advanced
2:00remaining
What error does this PHP code raise?

What error will this PHP code produce?

PHP
<?php
$array = [1, 2, 3];
$intVal = (int)$array;
echo $intVal;
?>
A1
B0
CFatal error: Uncaught Error: Object of class Array could not be converted to int
DWarning: Array to string conversion
Attempts:
2 left
💡 Hint

Arrays cannot be cast to int in PHP.

❓ Predict Output
advanced
2:00remaining
What is the output of casting boolean to string in PHP?

What will this PHP code output?

PHP
<?php
$boolVal = true;
$strVal = (string)$boolVal;
echo strlen($strVal);
?>
A4
B1
C0
DError
Attempts:
2 left
💡 Hint

True converts to string "1" and false to empty string "".

❓ Predict Output
expert
3:00remaining
What is the output of this complex type casting in PHP?

What will this PHP code output?

PHP
<?php
$value = "10 apples";
$floatVal = (float)$value;
$intVal = (int)$floatVal;
echo $intVal + 5;
?>
A15
B10
C5
DError
Attempts:
2 left
💡 Hint

Casting string to float reads initial number, then casting float to int truncates decimals.

Practice

(1/5)
1. What does the following PHP code do?
$num = (int) "123";
easy
A. Converts the string "123" to an integer 123
B. Converts the integer 123 to a string
C. Throws a syntax error
D. Leaves the variable as a string

Solution

  1. Step 1: Identify the type casting operation

    The code uses (int) before a string variable, which means it converts the string to an integer.
  2. Step 2: Understand the conversion result

    The string "123" becomes the integer 123 after casting.
  3. Final Answer:

    Converts the string "123" to an integer 123 -> Option A
  4. Quick Check:

    Type casting (int) converts string "123" to integer 123 [OK]
Hint: Casting (int) changes strings of digits to numbers [OK]
Common Mistakes:
  • Thinking it converts integer to string
  • Expecting a syntax error
  • Assuming the variable stays a string
2. Which of the following is the correct syntax to cast a variable $value to a float in PHP?
easy
A. $floatValue = (float) $value;
B. $floatValue = cast float $value;
C. $floatValue = float($value);
D. $floatValue = (float)$value[];

Solution

  1. Step 1: Recall PHP type casting syntax

    PHP uses (type) before a variable to cast it, so (float) $value is correct.
  2. Step 2: Check each option

    $floatValue = float($value); uses a function-like syntax which is invalid. $floatValue = cast float $value; uses invalid syntax. $floatValue = (float)$value[]; tries to cast an array element incorrectly.
  3. Final Answer:

    $floatValue = (float) $value; -> Option A
  4. Quick Check:

    Correct cast syntax is (float) $value [OK]
Hint: Use (type) before variable for casting in PHP [OK]
Common Mistakes:
  • Using function call syntax like float($value)
  • Writing cast without parentheses
  • Adding invalid array brackets after cast
3. What is the output of this PHP code?
$a = "10 apples";
$b = (int) $a;
echo $b;
medium
A. Syntax error
B. 0
C. 10
D. 10 apples

Solution

  1. Step 1: Understand casting string with numbers and text

    When casting a string starting with numbers to int, PHP converts the leading number part only.
  2. Step 2: Apply casting to the string "10 apples"

    The string starts with "10", so (int) "10 apples" becomes integer 10.
  3. Final Answer:

    10 -> Option C
  4. Quick Check:

    String starting with digits casts to those digits as int [OK]
Hint: Casting string with leading digits to int keeps those digits [OK]
Common Mistakes:
  • Expecting full string output
  • Thinking casting fails with text
  • Assuming zero because of text
4. Find the error in this PHP code snippet:
$value = "123.45";
$intValue = int($value);
echo $intValue;
medium
A. Missing semicolon after echo
B. int() is not a valid cast syntax in PHP
C. Variable $value is not defined
D. Casting float to int is not allowed

Solution

  1. Step 1: Check the casting syntax used

    The code uses int($value), which looks like a function call but PHP does not have int() function for casting.
  2. Step 2: Identify correct casting method

    PHP uses (int) $value to cast, not int($value).
  3. Final Answer:

    int() is not a valid cast syntax in PHP -> Option B
  4. Quick Check:

    Use (int) for casting, not int() function [OK]
Hint: Casting uses (int), not int() function [OK]
Common Mistakes:
  • Using int() like a function
  • Confusing casting with function calls
  • Ignoring PHP casting syntax rules
5. Given the array $data = ["5", "3.14", "true", "false", "0"];, which PHP code correctly casts each element to its proper type (int, float, bool) using type casting syntax and stores results in $result?
hard
A. $result = [int($data[0]), float($data[1]), bool($data[2]), bool($data[3]), bool($data[4])];
B. $result = [(float)$data[0], (float)$data[1], (string)$data[2], (string)$data[3], (bool)$data[4]];
C. $result = [(int)$data[0], (int)$data[1], (bool)$data[2], (bool)$data[3], (int)$data[4]];
D. $result = [(int)$data[0], (float)$data[1], (bool)$data[2], (bool)$data[3], (bool)$data[4]];

Solution

  1. Step 1: Analyze required casts for each element

    "5" should be int, "3.14" float, "true" and "false" to bool, "0" to bool.
  2. Step 2: Check each option for correct casting syntax and types

    $result = [(int)$data[0], (float)$data[1], (bool)$data[2], (bool)$data[3], (bool)$data[4]]; uses correct (type) syntax and casts each element properly. $result = [int($data[0]), float($data[1]), bool($data[2]), bool($data[3]), bool($data[4])]; uses invalid function-like casts. $result = [(int)$data[0], (int)$data[1], (bool)$data[2], (bool)$data[3], (int)$data[4]]; casts "3.14" to int incorrectly. $result = [(float)$data[0], (float)$data[1], (string)$data[2], (string)$data[3], (bool)$data[4]]; casts "true" and "false" to string incorrectly.
  3. Final Answer:

    $result = [(int)$data[0], (float)$data[1], (bool)$data[2], (bool)$data[3], (bool)$data[4]]; -> Option D
  4. Quick Check:

    Use (type) syntax and correct types for each element [OK]
Hint: Use (type) before each element for proper casting [OK]
Common Mistakes:
  • Using function calls instead of casting syntax
  • Casting floats as int incorrectly
  • Casting booleans as strings
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