What if you could write code once and reuse it everywhere without copying?
Why Extending classes in PHP? - Purpose & Use Cases
Imagine you are building a program to manage different types of vehicles. You write separate code for cars, trucks, and motorcycles, repeating similar features like starting the engine or honking the horn in each place.
Writing the same code again and again wastes time and makes mistakes easy. If you want to change how starting the engine works, you must find and update every copy. This is slow and confusing.
Extending classes lets you write common features once in a base class, then create new classes that reuse and add to those features. This saves time and keeps your code clean and easy to fix.
<?php class Car { function start() { echo "Engine starts"; } } class Truck { function start() { echo "Engine starts"; } } ?>
<?php class Vehicle { function start() { echo "Engine starts"; } } class Car extends Vehicle {} class Truck extends Vehicle {} ?>
You can build complex programs faster by sharing common code and customizing only what is different.
Think of a video game where many characters share basic moves like walking and jumping, but each has special powers. Extending classes helps organize these shared and unique abilities easily.
Extending classes avoids repeating code.
It makes programs easier to update and understand.
You can create new things by building on existing ones.
Practice
Solution
Step 1: Understand class inheritance in PHP
PHP uses a specific keyword to let one class inherit properties and methods from another.Step 2: Identify the correct keyword
The keyword to extend a class in PHP isextends, notinherits,implements, oruses.Final Answer:
extends -> Option AQuick Check:
Keyword for inheritance = extends [OK]
- Using 'inherits' instead of 'extends'
- Confusing 'implements' with 'extends'
- Using 'uses' keyword incorrectly
Animal in PHP?Solution
Step 1: Recall PHP class extension syntax
To create a child class, PHP uses the syntax:class Child extends Parent {}.Step 2: Match the syntax with options
class Dog extends Animal {} matches the correct syntax. The other options use incorrect keywords.Final Answer:
class Dog extends Animal {} -> Option AQuick Check:
Correct syntax uses 'extends' keyword [OK]
- Using 'inherits' instead of 'extends'
- Confusing 'implements' with 'extends'
- Using 'use' keyword for inheritance
class ParentClass {
public function greet() {
return "Hello from Parent";
}
}
class ChildClass extends ParentClass {
public function greet() {
return "Hello from Child";
}
}
$object = new ChildClass();
echo $object->greet();Solution
Step 1: Understand method overriding in child class
The child classChildClassoverrides thegreet()method of the parent class.Step 2: Determine which method is called
When callinggreet()on an instance ofChildClass, the overridden method in the child class runs.Final Answer:
Hello from Child -> Option CQuick Check:
Child method overrides parent method [OK]
- Assuming parent method runs instead of child
- Expecting syntax error due to override
- Thinking no output will be printed
class Vehicle {
public function start() {
return "Starting vehicle";
}
}
class Car Vehicle {
public function start() {
return "Starting car";
}
}Solution
Step 1: Check class extension syntax
In PHP, to extend a class, the child class must use theextendskeyword.Step 2: Identify the missing keyword
The codeclass Car Vehicle {}missesextendsbetweenCarandVehicle.Final Answer:
Missing 'extends' keyword before Vehicle -> Option DQuick Check:
Extending requires 'extends' keyword [OK]
- Omitting 'extends' keyword
- Thinking methods cannot be overridden
- Confusing abstract class requirement
class Base {
public function message() {
return "Base message";
}
}
class Derived extends Base {
public function message() {
return parent::message() . " and Derived message";
}
}
class MoreDerived extends Derived {
public function message() {
return parent::message() . " plus MoreDerived message";
}
}
$obj = new MoreDerived();
echo $obj->message();Solution
Step 1: Trace method calls through inheritance chain
MoreDerived::message()callsparent::message(), which isDerived::message().Step 2: Understand Derived::message() call
Derived::message()callsparent::message(), which isBase::message(), returning "Base message".Step 3: Combine returned strings
Base returns "Base message"; Derived appends " and Derived message"; MoreDerived appends " plus MoreDerived message".Final Answer:
Base message and Derived message plus MoreDerived message -> Option BQuick Check:
parent:: calls chain methods up inheritance [OK]
- Ignoring parent:: calls and output only last method
- Expecting fatal error from parent calls
- Thinking only base method runs
Ready to prove it?
Pass the test and this pattern moves unknown
