📖 Scenario: Imagine you are building a system where different types of devices can connect and perform actions. Each device has its own way of working, but they all must follow some common rules to work well together.
🎯 Goal: You will create an interface to define common actions for devices, then create classes that follow this interface. This shows why interfaces are needed to ensure different classes share the same methods.
📋 What You'll Learn
Create an interface called DeviceInterface with a method connect()
Create two classes Printer and Scanner that implement DeviceInterface
Each class must have its own connect() method with a simple message
Create a variable $device to hold an instance of Printer
Call the connect() method on $device and print the result
💡 Why This Matters
🌍 Real World
Interfaces are used in software to ensure different parts follow the same rules, like devices connecting to a computer or apps using common features.
💼 Career
Understanding interfaces is important for writing clean, maintainable code and working with large projects where many developers create different parts that must work together.
Progress0 / 4 steps
1
Create the interface
Create an interface called DeviceInterface with a method connect() that has no body.
PHP
Hint
An interface defines method names without code. Use interface keyword and declare connect() without body.
2
Create classes implementing the interface
Create two classes called Printer and Scanner that implement DeviceInterface. Each class must have a connect() method that returns a string: "Printer connected" for Printer and "Scanner connected" for Scanner.
PHP
Hint
Use implements DeviceInterface after class name. Define connect() method with return statements.
3
Create a device variable
Create a variable called $device and assign it a new instance of the Printer class.
PHP
Hint
Use $device = new Printer(); to create the object.
4
Call the connect method and print
Call the connect() method on the $device variable and print the returned string using echo.
PHP
Hint
Use echo $device->connect(); to print the message.
Practice
(1/5)
1. Why do we use interfaces in PHP?
easy
A. To store data like variables
B. To write code that runs automatically
C. To create objects directly
D. To define a set of methods that classes must implement
Solution
Step 1: Understand the purpose of interfaces
Interfaces only declare method names without code, setting a contract for classes.
Step 2: Recognize what interfaces enforce
Classes implementing interfaces must write all declared methods, ensuring consistent behavior.
Final Answer:
To define a set of methods that classes must implement -> Option D
Quick Check:
Interfaces = method contracts [OK]
Hint: Interfaces set method rules for classes [OK]
Common Mistakes:
Thinking interfaces store data
Believing interfaces create objects
Assuming interfaces run code automatically
2. Which of the following is the correct way to declare an interface in PHP?
easy
A. class MyInterface { public function doSomething() {} }
B. interface MyInterface { public function doSomething(); }
C. interface MyInterface() { function doSomething(); }
D. interface MyInterface { function doSomething() {} }
Solution
Step 1: Recall PHP interface syntax
Interfaces use the keyword 'interface' followed by the name and method declarations without bodies.
Step 2: Check method declaration rules
Methods in interfaces must be declared without code (no braces), only the signature.
Final Answer:
interface MyInterface { public function doSomething(); } -> Option B
Quick Check:
Interface methods have no body [OK]
Hint: Interface methods have no code blocks {} [OK]
Common Mistakes:
Adding method bodies inside interfaces
Using parentheses after interface name
Declaring interfaces as classes
3. What will be the output of this PHP code?
interface Talker {
public function talk();
}
class Person implements Talker {
public function talk() {
return "Hello!";
}
}
$person = new Person();
echo $person->talk();
medium
A. Hello!
B. Fatal error: Class Person must implement method talk
C. No output
D. Syntax error
Solution
Step 1: Check interface and class implementation
The class Person implements Talker and defines the talk() method returning "Hello!".
Step 2: Understand the output of echo
Calling $person->talk() returns "Hello!", which echo prints.
Final Answer:
Hello! -> Option A
Quick Check:
Implemented method returns string [OK]
Hint: Implemented interface methods run as coded [OK]
Common Mistakes:
Expecting error if method is implemented
Thinking interface code runs directly
Missing method implementation causes error
4. Find the error in this PHP code:
interface Flyer {
public function fly();
}
class Bird implements Flyer {
// forgot to implement fly method
}
medium
A. Class Bird must implement method fly()
B. Class Bird should not implement Flyer
C. Interface Flyer cannot be empty
D. No error, code runs fine
Solution
Step 1: Check interface requirements
Flyer interface requires a fly() method to be implemented by any class using it.
Step 2: Verify class Bird implementation
Bird class implements Flyer but does not define fly(), causing a fatal error.
Final Answer:
Class Bird must implement method fly() -> Option A
Quick Check:
Interface methods must be implemented [OK]
Hint: Classes must implement all interface methods [OK]
Common Mistakes:
Assuming interface methods are optional
Thinking empty class is allowed
Confusing interface with abstract class
5. You want different classes like Car and Airplane to have a startEngine() method, but their implementations differ. How does using an interface help?
hard
A. It prevents Car and Airplane from having startEngine() methods
B. It shares the same startEngine() code between Car and Airplane automatically
C. It forces both classes to have a startEngine() method, ensuring they can be used interchangeably
D. It makes startEngine() method optional in both classes
Solution
Step 1: Understand interface role in method enforcement
An interface declares startEngine() method that classes must implement, but each class writes its own code.
Step 2: Recognize benefit for interchangeable use
Because both classes have startEngine(), code using them can call this method without knowing class details.
Final Answer:
It forces both classes to have a startEngine() method, ensuring they can be used interchangeably -> Option C
Quick Check:
Interface = method contract, different code [OK]
Hint: Interface ensures method presence, not shared code [OK]
Common Mistakes:
Thinking interface shares method code
Believing methods become optional
Confusing interface with inheritance
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.