Bird
Raised Fist0
PHPprogramming~20 mins

Constructor method in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PHP Constructor 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 constructor example?
Consider the following PHP class with a constructor. What will be printed when the code runs?
PHP
<?php
class Car {
    public $model;
    public function __construct($model) {
        $this->model = $model;
        echo "Car model is: " . $this->model . "\n";
    }
}
$car = new Car("Toyota");
?>
ANo output
BCar model is:
CFatal error: Constructor method not found
DCar model is: Toyota
Attempts:
2 left
💡 Hint
Look at what the constructor does when the object is created.
❓ Predict Output
intermediate
2:00remaining
What will be the value of $obj->name after this code runs?
Look at this PHP class with a constructor. What is the value of the property name after creating the object?
PHP
<?php
class Person {
    public $name;
    public function __construct($name) {
        $this->name = $name;
    }
}
$obj = new Person("Alice");
// What is $obj->name?
?>
A"Alice"
B"name"
CUndefined property error
Dnull
Attempts:
2 left
💡 Hint
The constructor sets the property from the argument.
🔧 Debug
advanced
2:00remaining
What error does this PHP constructor code produce?
This PHP class tries to use a constructor but has a mistake. What error will it cause?
PHP
<?php
class Animal {
    public $type;
    public function Animal($type) {
        $this->type = $type;
    }
}
$dog = new Animal("Dog");
echo $dog->type;
?>
AOutputs: Dog
BNotice: Undefined property: Animal::$type
CFatal error: Call to undefined method Animal::__construct()
DParse error: syntax error
Attempts:
2 left
💡 Hint
PHP 7+ uses __construct() as the constructor method, not the class name.
🧠 Conceptual
advanced
2:00remaining
Which statement about PHP constructors is true?
Choose the correct statement about constructor methods in PHP classes.
AConstructors cannot accept parameters in PHP.
BThe constructor method __construct() is called automatically when an object is created.
CThe constructor method must always be named after the class name.
DYou must call the constructor manually after creating an object.
Attempts:
2 left
💡 Hint
Think about what happens when you create a new object.
📝 Syntax
expert
2:00remaining
Which option correctly defines a PHP constructor with a default parameter?
Select the PHP constructor method that correctly sets a default value for a parameter.
Apublic function __construct($name ?: "Guest") { $this->name = $name; }
Bpublic function __construct($name) = "Guest" { $this->name = $name; }
Cpublic function __construct($name = "Guest") { $this->name = $name; }
Dpublic function __construct($name = Guest) { $this->name = $name; }
Attempts:
2 left
💡 Hint
Default parameters use = with quotes for strings.

Practice

(1/5)
1. What is the main purpose of a constructor method in a PHP class?
easy
A. To print the object details
B. To delete an object from memory
C. To automatically set up an object when it is created
D. To create a new class inside the existing class

Solution

  1. Step 1: Understand what a constructor does

    A constructor is a special method that runs automatically when an object is created.
  2. Step 2: Identify the purpose of this automatic setup

    This setup usually initializes properties or runs code needed for the object to work properly.
  3. Final Answer:

    To automatically set up an object when it is created -> Option C
  4. Quick Check:

    Constructor = automatic setup [OK]
Hint: Constructor runs automatically on object creation [OK]
Common Mistakes:
  • Thinking constructor deletes objects
  • Confusing constructor with printing methods
  • Assuming constructor creates new classes
2. Which of the following is the correct way to declare a constructor method in PHP?
easy
A. function __construct() {}
B. function construct() {}
C. function _construct() {}
D. function __destruct() {}

Solution

  1. Step 1: Recall the special constructor name in PHP

    PHP uses the exact name __construct with two underscores at the start.
  2. Step 2: Check each option for correct syntax

    Only function __construct() {} uses the correct spelling and underscores for the constructor.
  3. Final Answer:

    function __construct() {} -> Option A
  4. Quick Check:

    Constructor name = __construct [OK]
Hint: Constructor always named __construct with two underscores [OK]
Common Mistakes:
  • Missing one or both underscores
  • Using 'construct' without underscores
  • Confusing constructor with destructor (__destruct)
3. What will be the output of the following PHP code?
class Car {
  public $color;
  public function __construct($color) {
    $this->color = $color;
  }
  public function getColor() {
    return $this->color;
  }
}
$myCar = new Car('red');
echo $myCar->getColor();
medium
A. red
B. Car
C. null
D. Error

Solution

  1. Step 1: Understand constructor parameter usage

    The constructor sets the property color to the value passed ('red').
  2. Step 2: Check what getColor() returns

    getColor() returns the color property, which was set to 'red'.
  3. Final Answer:

    red -> Option A
  4. Quick Check:

    Constructor sets color = 'red' [OK]
Hint: Constructor sets properties used later [OK]
Common Mistakes:
  • Forgetting to pass argument to constructor
  • Expecting class name as output
  • Assuming property is null without initialization
4. Identify the error in this PHP class constructor code:
class Person {
  public $name;
  public function __construct {
    $this->name = 'Alice';
  }
}
medium
A. Constructor name should be Person
B. Wrong property name
C. Missing semicolon after assignment
D. Missing parentheses after __construct

Solution

  1. Step 1: Check constructor syntax

    In PHP, the constructor method must have parentheses even if no parameters are used.
  2. Step 2: Identify the missing parentheses

    The code misses () after __construct, causing a syntax error.
  3. Final Answer:

    Missing parentheses after __construct -> Option D
  4. Quick Check:

    Constructor needs () even if empty [OK]
Hint: Always add () after __construct even if empty [OK]
Common Mistakes:
  • Omitting parentheses in method declaration
  • Thinking constructor name must match class
  • Forgetting semicolon after statements
5. You want to create a PHP class Book that stores a title and author. The constructor should accept both values and store them. Which code correctly implements this?
hard
A. class Book { public $title, $author; public function Book($title, $author) { $this->title = $title; $this->author = $author; } }
B. class Book { public $title; public $author; public function __construct($title, $author) { $this->title = $title; $this->author = $author; } }
C. class Book { public $title; public $author; public function __construct() { $title = ''; $author = ''; } }
D. class Book { public $title; public $author; public function __construct($title) { $this->title = $title; } }

Solution

  1. Step 1: Check constructor name and parameters

    PHP uses __construct with two parameters $title and $author, matching the requirement.
  2. Step 2: Verify property assignments

    The code assigns both $title and $author to object properties using $this correctly.
  3. Final Answer:

    class Book { public $title; public $author; public function __construct($title, $author) { $this->title = $title; $this->author = $author; } } -> Option B
  4. Quick Check:

    Constructor with all needed parameters and assignments [OK]
Hint: Use __construct with all needed parameters and assign to properties [OK]
Common Mistakes:
  • Using old-style constructor named after class
  • Not passing all required parameters
  • Not assigning parameters to properties
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