Bird
Raised Fist0
PHPprogramming~5 mins

Extending classes in PHP - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Extending classes
O(n)
Understanding Time Complexity

When we extend classes in PHP, we add new features to existing code. It's important to see how this affects the time it takes for the program to run.

We want to know: how does adding a child class change the work the program does?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


class ParentClass {
    public function process(array $items) {
        foreach ($items as $item) {
            echo $item . "\n";
        }
    }
}

class ChildClass extends ParentClass {
    public function process(array $items) {
        parent::process($items);
        echo "Done processing " . count($items) . " items.";
    }
}

$child = new ChildClass();
$child->process([1, 2, 3, 4, 5]);
    

This code defines a parent class with a method that prints each item in an array. The child class extends it by calling the parent method and then printing a summary message.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The foreach loop that goes through each item in the array.
  • How many times: Once for each item in the input array.
How Execution Grows With Input

As the number of items grows, the loop runs more times, printing each item once.

Input Size (n)Approx. Operations
1010 prints
100100 prints
10001000 prints

Pattern observation: The work grows directly with the number of items. Double the items, double the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line with the number of items processed.

Common Mistake

[X] Wrong: "Extending a class always makes the program slower by a lot."

[OK] Correct: Extending a class just adds a little extra work, like printing a summary. The main loop still runs once per item, so the overall time grows the same way.

Interview Connect

Understanding how extending classes affects time helps you write clear and efficient code. It shows you can think about both design and performance, a skill many developers value.

Self-Check

"What if the child class added another loop over the items? How would the time complexity change?"

Practice

(1/5)
1. What keyword is used in PHP to create a child class that inherits from a parent class?
easy
A. extends
B. inherits
C. implements
D. uses

Solution

  1. Step 1: Understand class inheritance in PHP

    PHP uses a specific keyword to let one class inherit properties and methods from another.
  2. Step 2: Identify the correct keyword

    The keyword to extend a class in PHP is extends, not inherits, implements, or uses.
  3. Final Answer:

    extends -> Option A
  4. Quick Check:

    Keyword for inheritance = extends [OK]
Hint: Remember: PHP uses 'extends' to inherit classes [OK]
Common Mistakes:
  • Using 'inherits' instead of 'extends'
  • Confusing 'implements' with 'extends'
  • Using 'uses' keyword incorrectly
2. Which of the following is the correct syntax to extend a class named Animal in PHP?
easy
A. class Dog extends Animal {}
B. class Dog inherits Animal {}
C. class Dog implements Animal {}
D. class Dog use Animal {}

Solution

  1. Step 1: Recall PHP class extension syntax

    To create a child class, PHP uses the syntax: class Child extends Parent {}.
  2. Step 2: Match the syntax with options

    class Dog extends Animal {} matches the correct syntax. The other options use incorrect keywords.
  3. Final Answer:

    class Dog extends Animal {} -> Option A
  4. Quick Check:

    Correct syntax uses 'extends' keyword [OK]
Hint: Use 'extends' keyword exactly after class name [OK]
Common Mistakes:
  • Using 'inherits' instead of 'extends'
  • Confusing 'implements' with 'extends'
  • Using 'use' keyword for inheritance
3. What will be the output of the following PHP code?
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();
medium
A. Hello from Parent
B. Fatal error
C. Hello from Child
D. No output

Solution

  1. Step 1: Understand method overriding in child class

    The child class ChildClass overrides the greet() method of the parent class.
  2. Step 2: Determine which method is called

    When calling greet() on an instance of ChildClass, the overridden method in the child class runs.
  3. Final Answer:

    Hello from Child -> Option C
  4. Quick Check:

    Child method overrides parent method [OK]
Hint: Child method overrides parent method with same name [OK]
Common Mistakes:
  • Assuming parent method runs instead of child
  • Expecting syntax error due to override
  • Thinking no output will be printed
4. Identify the error in this PHP code that tries to extend a class:
class Vehicle {
    public function start() {
        return "Starting vehicle";
    }
}

class Car Vehicle {
    public function start() {
        return "Starting car";
    }
}
medium
A. Class Car should not have methods
B. Method start() cannot be overridden
C. Class Vehicle should be abstract
D. Missing 'extends' keyword before Vehicle

Solution

  1. Step 1: Check class extension syntax

    In PHP, to extend a class, the child class must use the extends keyword.
  2. Step 2: Identify the missing keyword

    The code class Car Vehicle {} misses extends between Car and Vehicle.
  3. Final Answer:

    Missing 'extends' keyword before Vehicle -> Option D
  4. Quick Check:

    Extending requires 'extends' keyword [OK]
Hint: Always write 'extends' when inheriting a class [OK]
Common Mistakes:
  • Omitting 'extends' keyword
  • Thinking methods cannot be overridden
  • Confusing abstract class requirement
5. Given the following classes, what will be the output?
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();
hard
A. MoreDerived message
B. Base message and Derived message plus MoreDerived message
C. Base message
D. Fatal error due to parent call

Solution

  1. Step 1: Trace method calls through inheritance chain

    MoreDerived::message() calls parent::message(), which is Derived::message().
  2. Step 2: Understand Derived::message() call

    Derived::message() calls parent::message(), which is Base::message(), returning "Base message".
  3. Step 3: Combine returned strings

    Base returns "Base message"; Derived appends " and Derived message"; MoreDerived appends " plus MoreDerived message".
  4. Final Answer:

    Base message and Derived message plus MoreDerived message -> Option B
  5. Quick Check:

    parent:: calls chain methods up inheritance [OK]
Hint: parent:: calls chain up inheritance to combine outputs [OK]
Common Mistakes:
  • Ignoring parent:: calls and output only last method
  • Expecting fatal error from parent calls
  • Thinking only base method runs
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