📖 Scenario: Imagine you are creating a simple program to manage a car's details. You want to store the car's brand and model, and then show this information using a method inside a class.
🎯 Goal: You will build a PHP class called Car with properties for brand and model. Then, you will add a method called displayInfo that uses the $this keyword to show the car's brand and model.
📋 What You'll Learn
Create a class named Car with two public properties: brand and model
Create an object of the Car class
Assign the values "Toyota" to brand and "Corolla" to model
Add a method called displayInfo inside the Car class that prints the brand and model using $this
Call the displayInfo method on the object and print the output
💡 Why This Matters
🌍 Real World
Classes and methods with <code>$this</code> are used to organize data and behavior in real-world PHP applications like websites and tools.
💼 Career
Understanding how to use classes and the <code>$this</code> keyword is essential for PHP developers building maintainable and reusable code.
Progress0 / 4 steps
1
Create the Car class with properties
Create a class called Car with two public properties: brand and model.
PHP
Hint
Use class Car { } to create the class. Inside, declare public string $brand; and public string $model;.
2
Create a Car object and assign values
Create an object called $myCar from the Car class. Then assign "Toyota" to $myCar->brand and "Corolla" to $myCar->model.
PHP
Hint
Create the object with $myCar = new Car();. Assign values using $myCar->brand = "Toyota"; and $myCar->model = "Corolla";.
3
Add displayInfo method using $this
Inside the Car class, add a public method called displayInfo that prints the car's brand and model using $this->brand and $this->model.
PHP
Hint
Define the method with public function displayInfo() { }. Use echo "Brand: " . $this->brand . ", Model: " . $this->model; inside.
4
Call displayInfo method and print output
Call the displayInfo method on the $myCar object to print the car's brand and model.
PHP
Hint
Call the method with $myCar->displayInfo(); to print the details.
Practice
(1/5)
1. What does the $this keyword represent inside a PHP class method?
easy
A. A global variable
B. A static variable
C. The current object instance
D. The class name
Solution
Step 1: Understand the role of $this in PHP classes
$this is used inside class methods to refer to the current object instance that called the method.
Step 2: Differentiate from other options
It is not a static or global variable, nor does it represent the class name itself.
Final Answer:
The current object instance -> Option C
Quick Check:
$this = current object instance [OK]
Hint: Remember: $this always means 'this object' [OK]
Common Mistakes:
Confusing $this with static variables
Thinking $this is the class name
Assuming $this is a global variable
2. Which of the following is the correct way to call a method named greet inside a PHP class using $this?
Methods are called on objects using the arrow operator -> with $this representing the current object.
Step 2: Check each option
$this->greet(); is the correct syntax. The other options use invalid syntax.
Final Answer:
$this->greet(); -> Option D
Quick Check:
Method call syntax = $this->method(); [OK]
Hint: Use $this->methodName(); to call methods inside class [OK]
Common Mistakes:
Using dot (.) instead of arrow (->) operator
Omitting the dollar sign in $this
Using self without scope resolution operator
3. What will be the output of the following PHP code?
class Person {
public $name = 'Alice';
public function sayName() {
return 'Name: ' . $this->name;
}
}
$p = new Person();
echo $p->sayName();
medium
A. Name: Alice
B. Name: $name
C. Name:
D. Error: Undefined property
Solution
Step 1: Understand property access with $this
The method sayName() returns the string 'Name: ' concatenated with the object's name property accessed via $this->name.
Step 2: Check the property value and output
The property name is set to 'Alice', so the output will be 'Name: Alice'.
Final Answer:
Name: Alice -> Option A
Quick Check:
Property accessed via $this = 'Alice' [OK]
Hint: Remember: $this->property accesses current object's data [OK]
Common Mistakes:
Forgetting to use $this to access properties
Expecting literal string output without variable substitution
Confusing property name with string '$name'
4. Identify the error in this PHP class method:
class Car {
public $model = 'Tesla';
public function getModel() {
return $model;
}
}
medium
A. Missing $this when accessing $model
B. Method name should be GetModel with capital G
C. Property $model must be private
D. Return statement should be return $this->getModel;
Solution
Step 1: Check property access inside method
Inside class methods, properties must be accessed with $this->propertyName. Here, $model is used without $this->.
Step 2: Validate other options
Method names are case-insensitive in PHP, property visibility is not an error here, and the suggested return $this->getModel; is incorrect.
Final Answer:
Missing $this when accessing $model -> Option A
Quick Check:
Use $this->property to access properties [OK]
Hint: Always use $this-> to access object properties inside methods [OK]
Common Mistakes:
Accessing properties without $this->
Confusing method name case sensitivity
Misunderstanding property visibility rules
5. Given the class below, what will be the output?
class Counter {
private $count = 0;
public function increment() {
$this->count++;
}
public function getCount() {
return $this->count;
}
}
$c = new Counter();
$c->increment();
$c->increment();
echo $c->getCount();
hard
A. Error: Cannot access private property
B. 2
C. 1
D. 0
Solution
Step 1: Understand property increment inside the class
The increment() method increases the private $count property by 1 each time it is called.
Step 2: Trace method calls and final output
Calling increment() twice increases $count from 0 to 2. Then getCount() returns 2.
Final Answer:
2 -> Option B
Quick Check:
Two increments = count 2 [OK]
Hint: Private properties accessed via $this inside class work fine [OK]
Common Mistakes:
Assuming private properties can't be accessed inside class methods
Forgetting that increment operator changes value
Expecting output before increments
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.