Bird
Raised Fist0
PHPprogramming~5 mins

Access modifiers (public, private, protected) in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the public access modifier mean in PHP?
The public access modifier means the property or method can be accessed from anywhere: inside the class, from subclasses, and from outside the class.
Click to reveal answer
beginner
What is the difference between private and protected access modifiers?
<strong>Private</strong> means the property or method can only be accessed inside the class where it is declared. <strong>Protected</strong> means it can be accessed inside the class and by subclasses (child classes), but not from outside.
Click to reveal answer
beginner
Show a simple PHP class with one public, one private, and one protected property.
<?php
class Example {
    public $name;
    private $age;
    protected $email;
}
?>
Click to reveal answer
beginner
Why do we use access modifiers in PHP classes?
Access modifiers help control who can see or change properties and methods. This protects data and helps organize code by hiding details that should not be accessed directly.
Click to reveal answer
beginner
Can a subclass access a private property of its parent class directly?
No, a subclass cannot access a private property of its parent class directly. Private properties are only accessible inside the class where they are declared.
Click to reveal answer
Which access modifier allows access from anywhere, including outside the class?
Apublic
Bprivate
Cprotected
Dstatic
Which access modifier restricts access only to the class where the property or method is declared?
Apublic
Bprivate
Cprotected
Dfinal
Can a protected property be accessed from a subclass?
AOnly if public
BNo
CYes
DOnly if static
What happens if you try to access a private property from outside its class?
AIt converts to public
BIt works normally
CIt returns null
DIt causes an error
Which access modifier is best to hide sensitive data inside a class?
Aprivate
Bpublic
Cprotected
Dglobal
Explain the differences between public, private, and protected access modifiers in PHP.
Think about who can see or use the property or method.
You got /3 concepts.
    Why is it important to use access modifiers when writing PHP classes?
    Consider how access modifiers help keep code safe and clear.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which access modifier allows a property or method to be accessed from anywhere, including outside the class?
      easy
      A. public
      B. private
      C. protected
      D. static

      Solution

      1. Step 1: Understand access levels

        Public means accessible from anywhere, private means only inside the class, protected means inside class and subclasses.
      2. Step 2: Match the description

        The question asks for access from anywhere, which matches public.
      3. Final Answer:

        public -> Option A
      4. Quick Check:

        Public = accessible anywhere [OK]
      Hint: Public means open to all code everywhere [OK]
      Common Mistakes:
      • Confusing private with public access
      • Thinking protected is accessible outside class
      • Mixing static with access modifiers
      2. Which of the following is the correct way to declare a private property named $data in a PHP class?
      easy
      A. private $data;
      B. public $data;
      C. protected $data;
      D. var $data;

      Solution

      1. Step 1: Recall PHP property declaration syntax

        Access modifiers come before the variable name with a dollar sign, e.g., private $data;
      2. Step 2: Identify private declaration

        Only private $data; uses 'private' correctly before the variable.
      3. Final Answer:

        private $data; -> Option A
      4. Quick Check:

        private property syntax = private $data; [OK]
      Hint: Use 'private' keyword before $variable for private property [OK]
      Common Mistakes:
      • Using 'var' instead of access modifiers
      • Forgetting the dollar sign before variable
      • Mixing public or protected when private is needed
      3. What will be the output of the following PHP code?
      class Test {
          private $secret = 'hidden';
          public function reveal() {
              return $this->secret;
          }
      }
      $obj = new Test();
      echo $obj->reveal();
      medium
      A. secret
      B. Error: Cannot access private property
      C. null
      D. hidden

      Solution

      1. Step 1: Understand private property access inside class

        Private properties can be accessed inside class methods using $this->property.
      2. Step 2: Check method reveal() returns private property

        The reveal() method returns $this->secret, which is 'hidden'. So echo prints 'hidden'.
      3. Final Answer:

        hidden -> Option D
      4. Quick Check:

        Private accessed inside class method = allowed [OK]
      Hint: Private properties accessible inside class methods [OK]
      Common Mistakes:
      • Thinking private properties can't be accessed even inside class
      • Expecting error when accessing private inside class
      • Confusing property name with string output
      4. Identify the error in this PHP code:
      class ParentClass {
          protected $value = 10;
      }
      
      class ChildClass extends ParentClass {
          public function getValue() {
              return $this->value;
          }
      }
      
      $obj = new ParentClass();
      echo $obj->value;
      medium
      A. Syntax error in class declaration
      B. ChildClass cannot extend ParentClass
      C. Cannot access protected property from outside the class
      D. No error, outputs 10

      Solution

      1. Step 1: Understand protected property access

        Protected properties can be accessed inside the class and child classes, but not from outside.
      2. Step 2: Check code usage

        The code tries to echo $obj->value where $obj is ParentClass instance, accessing protected property from outside, causing error.
      3. Final Answer:

        Cannot access protected property from outside the class -> Option C
      4. Quick Check:

        Protected outside class = error [OK]
      Hint: Protected properties not accessible outside class or children [OK]
      Common Mistakes:
      • Trying to access protected property directly from object
      • Confusing protected with public
      • Assuming no error when accessing protected externally
      5. Given the following PHP classes, what will be the output?
      class Base {
          private $data = 'base';
          protected $info = 'protected info';
          public function getData() {
              return $this->data;
          }
      }
      
      class Derived extends Base {
          public function getInfo() {
              return $this->info;
          }
          public function getDataFromBase() {
              return $this->data;
          }
      }
      
      $obj = new Derived();
      echo $obj->getData() . ' & ' . $obj->getInfo() . ' & ' . $obj->getDataFromBase();
      hard
      A. base & protected info & base
      B. base & protected info & Error accessing private property
      C. Error accessing private property & protected info & base
      D. Error accessing private property & Error accessing protected property & Error

      Solution

      1. Step 1: Analyze private property access in Derived

        Private property $data is only accessible inside Base class. Derived cannot access $this->data directly.
      2. Step 2: Check method calls and outputs

        getData() returns $data from Base (allowed), getInfo() returns protected $info (allowed in Derived), getDataFromBase() tries to access private $data directly (causes error).
      3. Final Answer:

        base & protected info & Error accessing private property -> Option B
      4. Quick Check:

        Private inaccessible in child = error [OK]
      Hint: Private properties not accessible in child classes [OK]
      Common Mistakes:
      • Assuming private properties are inherited and accessible
      • Confusing protected with private access
      • Expecting no error when accessing private from child
      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