Bird
Raised Fist0
PHPprogramming~5 mins

Methods and $this keyword in PHP

Choose your learning style10 modes available
Introduction

Methods let you group actions inside a class. The $this keyword helps you access the current object's properties and methods.

When you want to organize code that belongs to an object.
When you need to change or read data inside an object.
When you want to reuse code inside the same object.
When you want to keep data and actions together for clarity.
When you want to create multiple objects with similar behavior.
Syntax
PHP
<?php
class ClassName {
    public $property;

    public function methodName() {
        // Use $this->property or $this->methodName()
    }
}
?>

Methods are functions inside a class.

$this refers to the current object instance.

Examples
This method uses $this->name to get the dog's name.
PHP
<?php
class Dog {
    public $name;

    public function bark() {
        echo $this->name . " says Woof!";
    }
}
?>
Methods change and return the object's property using $this.
PHP
<?php
class Counter {
    public $count = 0;

    public function increment() {
        $this->count++;
    }

    public function getCount() {
        return $this->count;
    }
}
?>
Sample Program

This program creates a Car object with a color. The describe method uses $this->color to print the color.

PHP
<?php
class Car {
    public $color;

    public function __construct($color) {
        $this->color = $color;
    }

    public function describe() {
        echo "This car is " . $this->color . ".\n";
    }
}

$myCar = new Car("red");
$myCar->describe();
?>
OutputSuccess
Important Notes

Always use $this inside methods to access properties or other methods of the same object.

You cannot use $this outside of class methods.

Remember to use -> to access properties or methods with $this.

Summary

Methods are functions inside classes that define object behavior.

$this refers to the current object and lets you access its data and actions.

Use methods and $this to keep code organized and connected to the object.

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