Bird
Raised Fist0
PHPprogramming~5 mins

Interface constants in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What are interface constants in PHP?
Interface constants are fixed values defined inside an interface. They cannot be changed and are automatically public.
Click to reveal answer
beginner
How do you define a constant inside a PHP interface?
Use the <code>const</code> keyword followed by the name and value, for example: <code>const STATUS = 'active';</code>
Click to reveal answer
intermediate
Can interface constants be overridden in classes that implement the interface?
No, interface constants cannot be changed or overridden by implementing classes. They remain fixed as defined in the interface.
Click to reveal answer
beginner
How do you access an interface constant from outside the interface?
Use the interface name followed by the scope resolution operator :: and the constant name, like InterfaceName::CONSTANT_NAME.
Click to reveal answer
intermediate
Why use constants in interfaces instead of class constants?
Interface constants provide a way to define fixed values that all implementing classes share, ensuring consistency and avoiding duplication.
Click to reveal answer
Which keyword is used to declare a constant inside a PHP interface?
Adefine
Bvar
Cconst
Dstatic
Can a class that implements an interface change the value of an interface constant?
AYes, anytime
BOnly in the constructor
COnly if declared public
DNo, interface constants are fixed
How do you access an interface constant named STATUS in interface UserInterface?
AUserInterface::STATUS
BUserInterface.STATUS
C$UserInterface::STATUS
DUserInterface->STATUS
What visibility do interface constants have by default?
Apublic
Bprotected
Cprivate
Dpackage
Why might you use constants in an interface?
ATo store variable data
BTo share fixed values across all implementing classes
CTo allow classes to override values
DTo create private data
Explain what interface constants are and how they are used in PHP.
Think about fixed values shared by all classes implementing the interface.
You got /5 concepts.
    Describe how to access and why to use constants defined in an interface.
    Consider the benefit of having common values for all implementers.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the correct way to access a constant defined in a PHP interface named MyInterface with a constant VERSION?
      easy
      A. MyInterface->VERSION
      B. $this->VERSION
      C. self::VERSION
      D. MyInterface::VERSION

      Solution

      1. Step 1: Understand interface constants access

        Constants in interfaces are accessed using the interface name followed by double colon (::) and the constant name.
      2. Step 2: Apply correct syntax

        Using MyInterface::VERSION correctly accesses the constant defined in the interface.
      3. Final Answer:

        MyInterface::VERSION -> Option D
      4. Quick Check:

        Interface constants use InterfaceName::CONSTANT [OK]
      Hint: Use InterfaceName::CONSTANT to access interface constants [OK]
      Common Mistakes:
      • Using $this->CONSTANT inside interface context
      • Using self::CONSTANT which refers to class, not interface
      • Using arrow operator (->) with interface name
      2. Which of the following is the correct way to declare a constant inside a PHP interface?
      easy
      A. const MAX_SIZE = 100;
      B. define('MAX_SIZE', 100);
      C. public const MAX_SIZE = 100;
      D. var MAX_SIZE = 100;

      Solution

      1. Step 1: Recall interface constant declaration rules

        In PHP interfaces, constants are declared using const keyword without visibility modifiers.
      2. Step 2: Identify correct syntax

        const MAX_SIZE = 100; is the correct way. Using define() or visibility keywords is invalid in interfaces.
      3. Final Answer:

        const MAX_SIZE = 100; -> Option A
      4. Quick Check:

        Interface constants use const without visibility [OK]
      Hint: Use const without public/private in interfaces [OK]
      Common Mistakes:
      • Using define() inside interface
      • Adding public/private before const
      • Using var keyword for constants
      3. Given the interface and class below, what will be the output?
      interface Status {
          const ACTIVE = 1;
          const INACTIVE = 0;
      }
      
      class User implements Status {
          public function getStatus() {
              return Status::ACTIVE;
          }
      }
      
      $user = new User();
      echo $user->getStatus();
      medium
      A. ACTIVE
      B. 0
      C. 1
      D. Error: Cannot access constant

      Solution

      1. Step 1: Understand interface constants usage

        The interface Status defines constants ACTIVE = 1 and INACTIVE = 0. The class User implements this interface.
      2. Step 2: Trace method getStatus()

        The method returns Status::ACTIVE, which is the integer 1. The echo statement prints this value.
      3. Final Answer:

        1 -> Option C
      4. Quick Check:

        Interface constant value printed = 1 [OK]
      Hint: Interface constants accessed as InterfaceName::CONSTANT return their value [OK]
      Common Mistakes:
      • Expecting constant name string instead of value
      • Trying to access constant via $this
      • Assuming constants are not accessible in implementing class
      4. What is wrong with the following PHP code?
      interface Config {
          public const TIMEOUT = 30;
      }
      medium
      A. Interface constants must be assigned string values only
      B. Constants in interfaces cannot have visibility modifiers
      C. Constants must be declared as static in interfaces
      D. Constants cannot be declared inside interfaces

      Solution

      1. Step 1: Review interface constant declaration rules

        In PHP, interface constants must be declared without visibility keywords like public, private, or protected.
      2. Step 2: Identify the error in code

        The code uses public const TIMEOUT = 30;, which is invalid syntax for interface constants.
      3. Final Answer:

        Constants in interfaces cannot have visibility modifiers -> Option B
      4. Quick Check:

        No visibility allowed on interface constants [OK]
      Hint: Do not add public/private before const in interfaces [OK]
      Common Mistakes:
      • Adding public or private before const in interface
      • Thinking constants must be static in interfaces
      • Assuming constants only accept strings
      5. You want to define an interface Shape with constants CIRCLE = 1, SQUARE = 2, and TRIANGLE = 3. Then, create a class Circle implementing Shape that returns the shape type constant. Which code snippet correctly implements this?
      hard
      A. interface Shape { const CIRCLE = 1; const SQUARE = 2; const TRIANGLE = 3; } class Circle implements Shape { public function getType() { return Shape::CIRCLE; } }
      B. interface Shape { public const CIRCLE = 1; public const SQUARE = 2; public const TRIANGLE = 3; } class Circle implements Shape { public function getType() { return $this->CIRCLE; } }
      C. interface Shape { const CIRCLE = 1; const SQUARE = 2; const TRIANGLE = 3; } class Circle implements Shape { public function getType() { return self::CIRCLE; } }
      D. interface Shape { const CIRCLE = 1; const SQUARE = 2; const TRIANGLE = 3; } class Circle implements Shape { public function getType() { return Shape->CIRCLE; } }

      Solution

      1. Step 1: Define interface constants correctly

        Constants in interface Shape are declared using const without visibility modifiers.
      2. Step 2: Access constants correctly in implementing class

        Inside Circle, access the constant using Shape::CIRCLE. Using $this->CIRCLE or self::CIRCLE is incorrect because constants belong to the interface, not the class instance or class itself.
      3. Final Answer:

        Option A code snippet correctly implements interface constants and access -> Option A
      4. Quick Check:

        Interface constants accessed as InterfaceName::CONSTANT [OK]
      Hint: Access interface constants with InterfaceName::CONSTANT, not $this or self [OK]
      Common Mistakes:
      • Adding public before const in interface
      • Using $this->CONSTANT to access interface constant
      • Using self::CONSTANT inside class for interface constant
      • Using arrow operator (->) with interface name
      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