Bird
Raised Fist0
PHPprogramming~30 mins

Methods and $this keyword in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Methods and $this keyword
📖 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

  1. 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.
  2. Step 2: Differentiate from other options

    It is not a static or global variable, nor does it represent the class name itself.
  3. Final Answer:

    The current object instance -> Option C
  4. 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?
easy
A. this->greet();
B. self->greet();
C. $this.greet();
D. $this->greet();

Solution

  1. Step 1: Recall PHP method call syntax inside classes

    Methods are called on objects using the arrow operator -> with $this representing the current object.
  2. Step 2: Check each option

    $this->greet(); is the correct syntax. The other options use invalid syntax.
  3. Final Answer:

    $this->greet(); -> Option D
  4. 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

  1. 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.
  2. Step 2: Check the property value and output

    The property name is set to 'Alice', so the output will be 'Name: Alice'.
  3. Final Answer:

    Name: Alice -> Option A
  4. 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

  1. Step 1: Check property access inside method

    Inside class methods, properties must be accessed with $this->propertyName. Here, $model is used without $this->.
  2. 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.
  3. Final Answer:

    Missing $this when accessing $model -> Option A
  4. 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

  1. Step 1: Understand property increment inside the class

    The increment() method increases the private $count property by 1 each time it is called.
  2. Step 2: Trace method calls and final output

    Calling increment() twice increases $count from 0 to 2. Then getCount() returns 2.
  3. Final Answer:

    2 -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard