Bird
0
0

Find the error in this code snippet:

medium📝 Debug Q7 of 15
PHP - Interfaces and Traits
Find the error in this code snippet:
trait A { public function run() { return 'A'; } } trait B { public function run() { return 'B'; } } class C { use A, B { B::run insteadof A; A::run as runA; } public function run() { return 'C'; } }
ANo error, code is valid.
BCannot alias trait method when class has same method name.
CConflict resolution must use 'override' keyword.
DClass method run() conflicts with trait methods.
Step-by-Step Solution
Solution:
  1. Step 1: Analyze trait conflict resolution and aliasing

    The class resolves conflict by using B::run instead of A::run and aliases A::run as runA.
  2. Step 2: Check class method with same name

    The class defines its own run() method, which overrides trait methods as expected.
  3. Final Answer:

    No error, code is valid. -> Option A
  4. Quick Check:

    Class method overrides traits; aliasing allowed [OK]
Quick Trick: Class methods override traits; aliasing trait methods is allowed [OK]
Common Mistakes:
  • Thinking aliasing conflicts with class methods
  • Expecting 'override' keyword for conflict resolution
  • Assuming error due to method name duplication

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More PHP Quizzes