Bird
Raised Fist0
PHPprogramming~5 mins

Gettype and typeof checks in PHP

Choose your learning style10 modes available
Introduction

We use gettype and get_debug_type checks to find out what kind of data a variable holds. This helps us understand and control our program better.

When you want to check if a variable is a number or a string before doing math or text work.
When debugging to see what type of data a variable contains.
When writing functions that behave differently based on the input type.
When validating user input to make sure it matches expected types.
When converting data and you want to confirm the original type first.
Syntax
PHP
<?php
// Using gettype
$type = gettype($variable);

// Using get_debug_type (PHP 8.0+)
$type = get_debug_type($variable);
?>

gettype returns a string describing the type, like 'integer', 'string', 'array'.

get_debug_type is a newer feature (PHP 8.0+) that returns a string representing the precise type, like 'int', 'float', 'bool'.

Examples
This shows how gettype returns the type name as a string.
PHP
<?php
$x = 10;
echo gettype($x); // prints 'integer'
?>
Checking a string variable with gettype.
PHP
<?php
$y = "hello";
echo gettype($y); // prints 'string'
?>
get_debug_type returns a string with the precise type name.
PHP
<?php
// Using get_debug_type in PHP 8.0+
$z = 3.14;
$type = get_debug_type($z);
echo $type; // prints 'float'
?>
Sample Program

This program loops through different values and prints their types using both gettype and get_debug_type (if PHP version supports it).

PHP
<?php
// Sample program to show gettype and get_debug_type
$values = [123, "text", 3.14, true, [1, 2, 3]];

foreach ($values as $val) {
    echo "Value: ";
    print_r($val);
    echo " - gettype: " . gettype($val) . "\n";

    if (PHP_VERSION_ID >= 80000) {
        $type = get_debug_type($val);
        echo " - get_debug_type: " . $type . "\n";
    }
    echo "\n";
}
?>
OutputSuccess
Important Notes

gettype returns 'double' for floating point numbers, but get_debug_type returns 'float'.

get_debug_type is only available in PHP 8.0 and later.

Use gettype for simple type checks in older PHP versions.

Summary

gettype returns the type of a variable as a string.

get_debug_type returns a more precise type name as a string (PHP 8.0+).

Both help you understand what kind of data you are working with.

Practice

(1/5)
1. What does the PHP function gettype() return when called on a variable?
easy
A. A string describing the variable's type
B. An integer representing the type code
C. A boolean indicating if the variable is set
D. An object describing the variable

Solution

  1. Step 1: Understand the purpose of gettype()

    The gettype() function returns the type of a variable as a string, such as "integer", "string", or "array".
  2. Step 2: Compare options with gettype() behavior

    The option stating that it returns a string describing the variable's type is correct.
  3. Final Answer:

    A string describing the variable's type -> Option A
  4. Quick Check:

    gettype() = string description [OK]
Hint: Remember: gettype() always returns a string type name [OK]
Common Mistakes:
  • Thinking gettype() returns a numeric code
  • Confusing gettype() with isset()
  • Assuming gettype() returns an object
2. Which of the following is the correct syntax to get the type of a variable $var using gettype() in PHP?
easy
A. gettype $var;
B. typeof $var;
C. typeof($var);
D. gettype($var);

Solution

  1. Step 1: Recall correct function syntax in PHP

    PHP functions require parentheses around arguments, so gettype($var); is correct syntax.
  2. Step 2: Check other options for syntax errors

    Syntax using typeof is invalid because it is not a PHP function. gettype $var; misses parentheses, which is invalid syntax.
  3. Final Answer:

    gettype($var); -> Option D
  4. Quick Check:

    Function call syntax = gettype($var) [OK]
Hint: Use parentheses with function calls in PHP [OK]
Common Mistakes:
  • Using typeof instead of gettype()
  • Omitting parentheses in function calls
  • Confusing PHP syntax with JavaScript
3. What will be the output of the following PHP code?
$x = 3.14;
echo gettype($x);
medium
A. integer
B. double
C. float
D. string

Solution

  1. Step 1: Identify the variable type

    The variable $x is assigned 3.14, which is a floating-point number.
  2. Step 2: Understand gettype() output for floats

    In PHP, gettype() returns "double" for floating-point numbers, not "float".
  3. Final Answer:

    double -> Option B
  4. Quick Check:

    gettype(3.14) = double [OK]
Hint: Remember: PHP calls floats "double" in gettype() output [OK]
Common Mistakes:
  • Expecting output to be "float" instead of "double"
  • Confusing integer and float types
  • Assuming gettype() returns "string" for numbers
4. Consider this PHP code snippet:
$value = true;
if (typeof($value) === 'boolean') {
echo 'Boolean type';
} else {
echo 'Not boolean';
}

What is the problem with this code?
medium
A. typeof is not a valid PHP function
B. Comparison operator === cannot be used with strings
C. Boolean values cannot be checked with typeof
D. The variable $value is not defined

Solution

  1. Step 1: Check if typeof is a PHP function

    PHP does not have a built-in typeof() function; it uses gettype() instead.
  2. Step 2: Analyze the impact of using typeof()

    Using typeof() causes a fatal error because the function does not exist.
  3. Final Answer:

    typeof is not a valid PHP function -> Option A
  4. Quick Check:

    typeof() invalid in PHP [OK]
Hint: Use gettype(), not typeof(), in PHP [OK]
Common Mistakes:
  • Assuming typeof() exists in PHP like in JavaScript
  • Thinking === cannot compare strings
  • Ignoring variable initialization
5. In PHP 8.0+, the typeof operator returns a Type object instead of a string. Given this code:
$var = [1, 2, 3];
$type = typeof $var;
echo $type->name;

What will be the output?
hard
A. Type
B. object
C. error
D. array

Solution

  1. Step 1: Verify typeof in PHP 8.0+

    PHP has no typeof operator or function in 8.0+ or any version; use gettype() instead.
  2. Step 2: Predict code execution

    The undefined typeof causes a fatal error (e.g., "Call to undefined function"). No echo output.
  3. Final Answer:

    error -> Option C
  4. Quick Check:

    typeof invalid in PHP [OK]
Hint: PHP has no typeof; use gettype() [OK]
Common Mistakes:
  • Believing typeof exists in PHP 8.0+
  • Confusing PHP with JavaScript's typeof
  • Expecting a Type object return
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