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.