A constructor method helps create an object with initial values automatically when you make it. It saves time and keeps your code neat.
When you want to set up an object with starting information right away.
When you need to make sure some values are always given when creating an object.
When you want to avoid writing extra code to set properties after making an object.
Syntax
PHP
class ClassName {
publicfunction __construct($param1, $param2) {
// code to set up the object
}
}
The constructor method is named __construct with two underscores.
It runs automatically when you create a new object with new ClassName().
Examples
This constructor sets the car's color when you create it.
PHP
<?php
class Car {
public $color;
publicfunction __construct($color) {
$this->color = $color;
}
}
This constructor sets both name and age for a person object.
PHP
<?php
class Person {
public $name;
public $age;
publicfunction __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
Sample Program
This program creates a Book object with a title and author using the constructor. Then it prints the book's information.
PHP
<?php
class Book {
public $title;
public $author;
publicfunction __construct($title, $author) {
$this->title = $title;
$this->author = $author;
}
publicfunction getInfo() {
return"Title: $this->title, Author: $this->author";
}
}
$myBook = new Book("1984", "George Orwell");
echo $myBook->getInfo();
OutputSuccess
Important Notes
You can have only one constructor method per class.
If you don't write a constructor, PHP uses a default one that does nothing.
Summary
A constructor method sets up an object automatically when created.
It uses the special name __construct.
It helps keep your code clean and easy to use.
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
Step 1: Understand what a constructor does
A constructor is a special method that runs automatically when an object is created.
Step 2: Identify the purpose of this automatic setup
This setup usually initializes properties or runs code needed for the object to work properly.
Final Answer:
To automatically set up an object when it is created -> Option C
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
Step 1: Recall the special constructor name in PHP
PHP uses the exact name __construct with two underscores at the start.
Step 2: Check each option for correct syntax
Only function __construct() {} uses the correct spelling and underscores for the constructor.
Final Answer:
function __construct() {} -> Option A
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
Step 1: Understand constructor parameter usage
The constructor sets the property color to the value passed ('red').
Step 2: Check what getColor() returns
getColor() returns the color property, which was set to 'red'.
Final Answer:
red -> Option A
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
Step 1: Check constructor syntax
In PHP, the constructor method must have parentheses even if no parameters are used.
Step 2: Identify the missing parentheses
The code misses () after __construct, causing a syntax error.
Final Answer:
Missing parentheses after __construct -> Option D
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
Step 1: Check constructor name and parameters
PHP uses __construct with two parameters $title and $author, matching the requirement.
Step 2: Verify property assignments
The code assigns both $title and $author to object properties using $this correctly.
Final Answer:
class Book {
public $title;
public $author;
public function __construct($title, $author) {
$this->title = $title;
$this->author = $author;
}
} -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.