0% complete

Object-Oriented PHP · Lesson 11 of 14

Interfaces

Define a behavioral contract that multiple classes can implement.

Lesson

An interface declares methods a class promises to implement. It allows callers to depend on behavior rather than a concrete implementation. Keep interfaces cohesive and introduce them when there are meaningful alternatives or a boundary that benefits from substitution. The type declaration ensures any injected notifier follows the same contract. Further guidance Give an object one clear responsibility and protect state that must satisfy a rule. Prefer a small public contract and composition for replaceable collaborators; use inheritance only for a genuine subtype. Test behavior through public methods instead of relying on internal implementation details. Practice task: Create a fresh example for Interfaces. Predict the result before running it, then change one input and explain why the result changes. Test a normal case and one boundary or invalid case where it applies. Compare your output with the example and note one rule you would use in a real project.

Code examples

Interfaces
PHP
interface Notifier { public function send(string $message): string; }
class EmailNotifier implements Notifier
{
    public function send(string $message): string { return "Email: $message"; }
}
echo (new EmailNotifier())->send('Saved');
Expected output
Email: Saved

Key points

  • Define a behavioral contract that multiple classes can implement.
  • Protect object invariants behind a small public API.
  • Prefer composition unless inheritance expresses a genuine subtype.

Your learning progress

Finish this lesson

Optional practice

PHP playground

This site does not execute learner-provided PHP code. Connect a secured PHP sandbox service before enabling code execution.

Execution is disabled. No code is sent to a server.