Bird
Raised Fist0
PHPprogramming~5 mins

Parent keyword behavior in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the parent keyword do in PHP?
The <code>parent</code> keyword is used to access methods or properties from a parent class inside a child class.
Click to reveal answer
beginner
How do you call a parent class constructor using <code>parent</code>?
Inside the child class constructor, you call <code>parent::__construct()</code> to run the parent class constructor.
Click to reveal answer
intermediate
Can parent be used to access overridden methods?
Yes, <code>parent</code> lets you call the parent class version of a method even if the child class has overridden it.
Click to reveal answer
intermediate
What happens if you use <code>parent</code> in a class without a parent?
Using <code>parent</code> in a class without a parent class causes a fatal error because there is no parent to refer to.
Click to reveal answer
beginner
Example: How to call a parent method named show() inside a child class?
Use <code>parent::show();</code> inside the child class method to call the parent's <code>show()</code> method.
Click to reveal answer
What does parent::methodName() do in PHP?
ADeletes the method <code>methodName</code>
BCalls the method <code>methodName</code> from the child class
CCreates a new method named <code>methodName</code>
DCalls the method <code>methodName</code> from the parent class
How do you call the parent constructor inside a child class constructor?
Aparent::__construct()
Bparent::constructor()
Cthis->parent()
Dsuper::__construct()
What error occurs if parent is used in a class without a parent?
AWarning: Undefined variable
BFatal error: Cannot access parent
CParse error: Unexpected token
DNo error, it works fine
Can parent access private properties of the parent class?
AYes, always
BOnly if declared static
CNo, private properties are not accessible
DOnly if accessed via a method
Which keyword is used to refer to the parent class in PHP?
Aparent
Bsuper
Cbase
Dthis
Explain how the parent keyword works in PHP and give an example of calling a parent method.
Think about how a child class can reuse code from its parent.
You got /3 concepts.
    Describe what happens if you try to use parent in a class that does not extend any other class.
    Consider what <code>parent</code> means and what happens if it has nothing to refer to.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the parent keyword do in PHP classes?
      easy
      A. It renames the parent class.
      B. It creates a new instance of the parent class.
      C. It deletes the parent class methods from the child class.
      D. It allows a child class to access methods or properties from its parent class.

      Solution

      1. Step 1: Understand the role of parent keyword

        The parent keyword in PHP is used inside a child class to refer to its parent class.
      2. Step 2: Identify what parent allows

        It allows the child class to call or extend methods or properties defined in the parent class.
      3. Final Answer:

        It allows a child class to access methods or properties from its parent class. -> Option D
      4. Quick Check:

        parent accesses parent methods/properties [OK]
      Hint: Remember: parent calls parent class features [OK]
      Common Mistakes:
      • Thinking parent creates new objects
      • Confusing parent with $this
      • Believing parent deletes methods
      2. Which of the following is the correct syntax to call a parent class method named show inside a child class method?
      easy
      A. parent.show();
      B. parent->show();
      C. parent::show();
      D. parent:show();

      Solution

      1. Step 1: Recall PHP syntax for calling parent methods

        In PHP, to call a parent class method inside a child, use the scope resolution operator :: with parent.
      2. Step 2: Match the correct syntax

        The correct syntax is parent::methodName();, so for method show, it is parent::show();.
      3. Final Answer:

        parent::show(); -> Option C
      4. Quick Check:

        Use :: with parent to call methods [OK]
      Hint: Use double colon (::) to call parent methods [OK]
      Common Mistakes:
      • Using arrow (->) instead of double colon (::)
      • Using dot (.) operator which is for strings
      • Using single colon (:) which is invalid syntax
      3. What will be the output of this PHP code?
      class A {
        public function greet() {
          return "Hello from A";
        }
      }
      
      class B extends A {
        public function greet() {
          return parent::greet() . " and B";
        }
      }
      
      $b = new B();
      echo $b->greet();
      medium
      A. Hello from A
      B. Hello from A and B
      C. Hello from B
      D. Error: Cannot call parent method

      Solution

      1. Step 1: Understand method overriding and parent call

        Class B overrides greet() but calls parent::greet() which returns "Hello from A".
      2. Step 2: Concatenate parent result with " and B"

        The child method returns the parent's string plus " and B", so the full string is "Hello from A and B".
      3. Final Answer:

        Hello from A and B -> Option B
      4. Quick Check:

        parent::greet() + " and B" = "Hello from A and B" [OK]
      Hint: parent::method() returns parent's output, can concatenate [OK]
      Common Mistakes:
      • Ignoring parent:: call and expecting only child's string
      • Thinking it causes an error
      • Confusing output with only parent's or only child's string
      4. Identify the error in this PHP code:
      class ParentClass {
        public function sayHi() {
          echo "Hi from parent";
        }
      }
      
      class ChildClass extends ParentClass {
        public function sayHi() {
          parent.sayHi();
          echo " and child";
        }
      }
      
      $obj = new ChildClass();
      $obj->sayHi();
      medium
      A. Using dot (.) instead of scope resolution (::) to call parent method
      B. Missing parentheses after method name
      C. Child class cannot override parent methods
      D. Parent class method is private

      Solution

      1. Step 1: Check how parent method is called

        The code uses parent.sayHi(); which is invalid syntax in PHP.
      2. Step 2: Correct syntax uses scope resolution operator

        It should be parent::sayHi(); to call the parent method inside child.
      3. Final Answer:

        Using dot (.) instead of scope resolution (::) to call parent method -> Option A
      4. Quick Check:

        Use parent::method(), not parent.method() [OK]
      Hint: Use ::, not . to call parent methods [OK]
      Common Mistakes:
      • Using dot (.) operator for method calls
      • Forgetting parentheses after method name
      • Assuming private methods can be called by child
      5. Given these classes, what will be the output?
      class Base {
        protected function message() {
          return "Base message";
        }
      }
      
      class Derived extends Base {
        public function message() {
          return parent::message() . " extended";
        }
      }
      
      class MoreDerived extends Derived {
        public function message() {
          return parent::message() . " and more";
        }
      }
      
      $obj = new MoreDerived();
      echo $obj->message();
      hard
      A. Base message extended and more
      B. Base message and more
      C. Error: Cannot access protected method
      D. Base message extended

      Solution

      1. Step 1: Trace method calls through inheritance

        MoreDerived::message() calls parent::message() which is Derived::message().
      2. Step 2: Derived::message() calls Base::message()

        Derived calls parent::message() which is Base::message() returning "Base message" and appends " extended".
      3. Step 3: Combine all returned strings

        So Derived returns "Base message extended" and MoreDerived appends " and more" resulting in "Base message extended and more".
      4. Final Answer:

        Base message extended and more -> Option A
      5. Quick Check:

        Chained parent calls build full string [OK]
      Hint: Each parent:: call adds to string stepwise [OK]
      Common Mistakes:
      • Expecting error due to protected method (allowed in child)
      • Ignoring chained parent calls
      • Assuming only base message prints
      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