Bird
Raised Fist0
PHPprogramming~10 mins

Methods and $this keyword in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Methods and $this keyword
Create Object
↓
Call Method
↓
Inside Method
↓
$this refers to Current Object
↓
Access/Modify Object Properties
↓
Return or Output Result
↓
End Method Execution
This flow shows how calling a method on an object uses $this to access that object's properties inside the method.
Execution Sample
PHP
<?php
class Car {
  public $color;
  public function setColor($c) {
    $this->color = $c;
  }
}
$car = new Car();
$car->setColor('red');
echo $car->color;
?>
This code creates a Car object, sets its color using a method with $this, then prints the color.
Execution Table
StepActionEvaluationResult
1Create new Car object$car = new Car()Object $car created with property color = null
2Call method setColor with argument 'red'$car->setColor('red')Inside setColor, $this refers to $car
3Assign $this->color = 'red'$this->color = 'red'Property color of $car set to 'red'
4Method setColor endsReturn voidBack to main code
5Echo $car->colorecho $car->colorOutputs: red
💡 Method completes and program outputs the color property value.
Variable Tracker
VariableStartAfter Step 1After Step 3Final
$car->colornullnull'red''red'
$thisN/ARefers to $carRefers to $carRefers to $car
Key Moments - 2 Insights
Why do we use $this->color inside the method instead of just $color?
Inside the method, $this->color means the color property of the current object. Just $color would be a local variable, not the object's property. See step 3 in execution_table where $this->color is assigned.
What does $this refer to inside the method?
$this always refers to the object that called the method. In step 2 and 3, $this points to $car, so changes affect $car's properties.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of $car->color after step 1?
Anull
B'red'
Cundefined
D0
💡 Hint
Check variable_tracker row for $car->color after Step 1.
At which step does $this->color get assigned the value 'red'?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the Action and Evaluation columns in execution_table for assignment.
If we called setColor('blue') instead, what would be the output at step 5?
Ared
Bnull
Cblue
DError
💡 Hint
Changing the argument changes the property value assigned in step 3.
Concept Snapshot
Methods are functions inside classes.
Use $this inside methods to access the current object's properties.
Example: $this->property = value;
Calling a method uses $this to refer to the calling object.
This lets methods change or use object data safely.
Full Transcript
This lesson shows how methods in PHP classes use the $this keyword to access the current object's properties. When you create an object and call its method, inside that method $this points to the object itself. This lets you read or change the object's properties. For example, setting $this->color changes the color property of the object that called the method. The execution table traces creating the object, calling the method, assigning the property, and printing the result. The variable tracker shows how $car->color changes from null to 'red'. Key moments explain why $this is needed and what it means. The quiz checks understanding of $this and property changes. Remember, $this is your way to say "this object" inside its own methods.

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