Bird
Raised Fist0
PHPprogramming~10 mins

Instanceof operator in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if $obj is an instance of the class MyClass.

PHP
<?php
class MyClass {}
$obj = new MyClass();
if ($obj [1] MyClass) {
    echo "Yes";
} else {
    echo "No";
}
?>
Drag options to blanks, or click blank then click option'
A===
B==
Cinstanceof
Dis_a
Attempts:
3 left
💡 Hint
Common Mistakes
Using == or === instead of instanceof.
Using is_a as if it were an operator.
2fill in blank
medium

Complete the code to check if $animal is an instance of the class Dog.

PHP
<?php
class Dog {}
class Cat {}
$animal = new Dog();
if ($animal [1] Dog) {
    echo "It's a dog.";
} else {
    echo "It's not a dog.";
}
?>
Drag options to blanks, or click blank then click option'
A==
Binstanceof
Cis_a
D===
Attempts:
3 left
💡 Hint
Common Mistakes
Using == or === which compare values, not types.
Trying to use is_a as an operator.
3fill in blank
hard

Fix the error in the code to correctly check if $obj is an instance of MyInterface.

PHP
<?php
interface MyInterface {}
class MyClass implements MyInterface {}
$obj = new MyClass();
if ($obj [1] MyInterface) {
    echo "Implements interface.";
} else {
    echo "Does not implement interface.";
}
?>
Drag options to blanks, or click blank then click option'
A===
B==
Cis_a
Dinstanceof
Attempts:
3 left
💡 Hint
Common Mistakes
Using == or === which do not check interface implementation.
Trying to use is_a as an operator.
4fill in blank
hard

Fill in the blank to create a dictionary with words as keys and their lengths as values, but only for words longer than 3 characters.

PHP
<?php
$words = ['apple', 'cat', 'banana', 'dog'];
$lengths = array_filter(array_combine($words, array_map(function($word) {
    return strlen($word);
}, $words)), function($length) {
    return $length [1] 3;
});
print_r($lengths);
?>
Drag options to blanks, or click blank then click option'
A>
B<
C==
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using < or == which filter wrong lengths.
Using != which includes unwanted lengths.
5fill in blank
hard

Fill all three blanks to create an associative array with uppercase words as keys and their lengths as values, only for words longer than 3 characters.

PHP
<?php
$words = ['apple', 'cat', 'banana', 'dog'];
$lengths = array_filter(array_combine(array_map(function($word) {
    return [1];
}, $words), array_map(function($word) {
    return [2];
}, $words)), function($length) {
    return $length [3] 3;
});
print_r($lengths);
?>
Drag options to blanks, or click blank then click option'
A$word strtoupper($word)
Bstrlen($word)
C>
Dstrtoupper($word)
Attempts:
3 left
💡 Hint
Common Mistakes
Using $word instead of strtoupper($word) for keys.
Using wrong comparison operator in filter.
Mixing keys and values in array_combine.

Practice

(1/5)
1. What does the instanceof operator do in PHP?
easy
A. Creates a new instance of a class
B. Checks if an object is an instance of a specific class or its subclass
C. Deletes an object from memory
D. Converts an object to a string

Solution

  1. Step 1: Understand the purpose of instanceof

    The instanceof operator is used to check if a variable is an object of a certain class or subclass.
  2. Step 2: Differentiate from other operations

    It does not create, delete, or convert objects; it only checks their type.
  3. Final Answer:

    Checks if an object is an instance of a specific class or its subclass -> Option B
  4. Quick Check:

    instanceof checks object type [OK]
Hint: Remember: instanceof checks object type, not creation or deletion [OK]
Common Mistakes:
  • Confusing instanceof with object creation
  • Thinking instanceof deletes objects
  • Assuming instanceof converts objects to strings
2. Which of the following is the correct syntax to check if $obj is an instance of class Car?
easy
A. if ($obj instance Car) {}
B. if ($obj is Car) {}
C. if (instanceof $obj Car) {}
D. if ($obj instanceof Car) {}

Solution

  1. Step 1: Recall correct instanceof syntax

    The correct syntax is: variable instanceof ClassName, without extra keywords or rearrangement.
  2. Step 2: Check each option

    if ($obj instanceof Car) {} matches the correct syntax exactly. Others have wrong keywords or order.
  3. Final Answer:

    if ($obj instanceof Car) {} -> Option D
  4. Quick Check:

    Correct instanceof syntax [OK]
Hint: Syntax is always: variable instanceof ClassName [OK]
Common Mistakes:
  • Using 'is' instead of 'instanceof'
  • Reversing order of variable and class
  • Adding extra keywords inside condition
3. What will be the output of the following PHP code?
$a = new DateTime();
if ($a instanceof DateTime) {
    echo 'Yes';
} else {
    echo 'No';
}
medium
A. Yes
B. No
C. Error
D. Nothing

Solution

  1. Step 1: Understand object creation

    $a is created as a new instance of the DateTime class.
  2. Step 2: Check instanceof condition

    The condition $a instanceof DateTime is true because $a is exactly a DateTime object.
  3. Final Answer:

    Yes -> Option A
  4. Quick Check:

    Object is DateTime = Yes [OK]
Hint: If object matches class, instanceof returns true [OK]
Common Mistakes:
  • Assuming instanceof returns false for exact class
  • Expecting syntax error from instanceof
  • Ignoring else branch output
4. Identify the error in this PHP code snippet:
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
if ($dog instanceof 'Animal') {
    echo 'It is an animal';
}
medium
A. Missing semicolon after class definition
B. Incorrect object creation syntax
C. Using quotes around class name in instanceof
D. Using instanceof with a variable instead of object

Solution

  1. Step 1: Check instanceof usage

    The instanceof operator expects a class name without quotes, not a string.
  2. Step 2: Verify other parts

    Classes and object creation are correct; semicolons are present.
  3. Final Answer:

    Using quotes around class name in instanceof -> Option C
  4. Quick Check:

    Class name must be unquoted in instanceof [OK]
Hint: Do not put quotes around class names in instanceof [OK]
Common Mistakes:
  • Putting class names in quotes inside instanceof
  • Confusing instanceof with string comparison
  • Missing semicolons elsewhere (not in this code)
5. Given the classes below, what will be the output?
class Vehicle {}
class Car extends Vehicle {}
class Bike extends Vehicle {}

function checkVehicle($obj) {
    if ($obj instanceof Car) {
        return 'Car';
    } elseif ($obj instanceof Vehicle) {
        return 'Vehicle';
    } else {
        return 'Unknown';
    }
}

$myBike = new Bike();
echo checkVehicle($myBike);
hard
A. Vehicle
B. Unknown
C. Car
D. Error

Solution

  1. Step 1: Analyze object type

    $myBike is an instance of Bike, which extends Vehicle.
  2. Step 2: Follow function logic

    First condition checks if $obj is Car - false. Second checks if $obj is Vehicle - true because Bike is subclass of Vehicle.
  3. Final Answer:

    Vehicle -> Option A
  4. Quick Check:

    Bike is a Vehicle, not Car = Vehicle [OK]
Hint: Check subclass before superclass in instanceof chains [OK]
Common Mistakes:
  • Expecting 'Car' for Bike object
  • Ignoring subclass relationship in instanceof
  • Assuming instanceof only matches exact class
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