📖 Scenario: You are creating a simple PHP class to represent a Book in a library system.
🎯 Goal: Build a PHP class called Book that uses a constructor method to set the book's title and author when creating a new Book object.
📋 What You'll Learn
Create a class named Book
Add a constructor method named __construct that accepts two parameters: $title and $author
Inside the constructor, assign the parameters to the class properties $title and $author
Create an object of the Book class with the title '1984' and author 'George Orwell'
Print the book's title and author in the format: Title: 1984, Author: George Orwell
💡 Why This Matters
🌍 Real World
Constructors are used in real-world PHP applications to set up objects with initial data, like user profiles, products, or articles.
💼 Career
Understanding constructors is essential for PHP developers to write clean, reusable, and organized code in web development jobs.
Progress0 / 4 steps
1
Create the Book class with properties
Create a PHP class called Book with two public properties: $title and $author.
PHP
Hint
Use class Book { public $title; public $author; } to define the class and properties.
2
Add the constructor method
Inside the Book class, add a constructor method named __construct that takes two parameters: $title and $author. Assign these parameters to the class properties $this->title and $this->author.
PHP
Hint
Use public function __construct($title, $author) { $this->title = $title; $this->author = $author; }.
3
Create a Book object
Create a new object called $book from the Book class, passing '1984' as the title and 'George Orwell' as the author to the constructor.
PHP
Hint
Use $book = new Book('1984', 'George Orwell'); to create the object.
4
Print the book details
Print the book's title and author in this exact format: Title: 1984, Author: George Orwell using the $book object's properties.
PHP
Hint
Use print("Title: {$book->title}, Author: {$book->author}"); to show the output.
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.