Bird
Raised Fist0
PHPprogramming~5 mins

Enum backed values in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an enum backed value in PHP?
An enum backed value in PHP is a way to assign a specific scalar value (like int or string) to each enum case, allowing the enum to hold and return that value.
Click to reveal answer
beginner
How do you declare a backed enum with string values in PHP?
Use the syntax: enum Status: string { case Active = 'active'; case Inactive = 'inactive'; } where : string declares the enum as backed by strings.
Click to reveal answer
intermediate
What happens if you try to assign a non-scalar value to a backed enum case?
PHP will throw a fatal error because backed enum cases must have scalar values (int or string) only.
Click to reveal answer
beginner
How can you get the backed value of an enum case in PHP?
You can access the backed value using the ->value property, for example: Status::Active->value returns 'active'.
Click to reveal answer
intermediate
Can backed enums have methods in PHP?
Yes, backed enums can have methods just like regular enums, allowing you to add behavior related to the enum cases.
Click to reveal answer
Which scalar types can be used for backed enum values in PHP?
Aint and string
Bfloat and bool
Carray and object
Dresource and null
How do you declare an enum backed by integers in PHP?
Aenum Status { case Active = 1; case Inactive = 0; }
Benum Status: string { case Active = '1'; case Inactive = '0'; }
Cenum Status: int { case Active = 1; case Inactive = 0; }
Denum Status: float { case Active = 1.0; case Inactive = 0.0; }
What will Status::Active->value return if enum Status: string { case Active = 'active'; }?
A'active'
BStatus::Active
Cnull
DAn error
Can you assign a float value to a backed enum case in PHP?
AOnly if you use a backed enum of type float
BYes, float is allowed
COnly if you cast it to string
DNo, only int and string are allowed
What will happen if you try to assign an array as a backed enum value?
AIt will assign the first element
BFatal error
CIt will be ignored
DIt will convert to string
Explain what a backed enum is and how you use it in PHP.
Think about enums that hold specific values like numbers or words.
You got /4 concepts.
    Describe the rules and limitations for values assigned to backed enum cases in PHP.
    Consider what types PHP allows for enum case values.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of using backed enums in PHP?

      easy
      A. To allow enums to inherit from classes
      B. To link enum cases to fixed strings or numbers
      C. To enable enums to have methods
      D. To make enums mutable

      Solution

      1. Step 1: Understand enum backed values

        Backed enums associate each enum case with a fixed string or integer value.
      2. Step 2: Identify the purpose

        This linking helps in storing, comparing, or displaying enum data easily.
      3. Final Answer:

        To link enum cases to fixed strings or numbers -> Option B
      4. Quick Check:

        Backed enums link cases to values = A [OK]
      Hint: Backed enums always connect cases to fixed values [OK]
      Common Mistakes:
      • Thinking enums can inherit classes
      • Confusing backed enums with mutable enums
      • Assuming enums cannot have methods
      2.

      Which of the following is the correct syntax to declare a backed enum with string values in PHP?

      enum Status: string {
          case ACTIVE = 'active';
          case INACTIVE = 'inactive';
      }
      easy
      A. enum Status: string { case ACTIVE = 'active'; case INACTIVE = 'inactive'; }
      B. enum Status { case ACTIVE = 'active'; case INACTIVE = 'inactive'; }
      C. enum Status: int { case ACTIVE = 'active'; case INACTIVE = 'inactive'; }
      D. enum Status: string { ACTIVE = 'active'; INACTIVE = 'inactive'; }

      Solution

      1. Step 1: Check enum declaration syntax

        Backed enums require specifying the type after the enum name, e.g., : string.
      2. Step 2: Verify case declarations

        Each case must use the case keyword and assign a value with =.
      3. Final Answer:

        enum Status: string { case ACTIVE = 'active'; case INACTIVE = 'inactive'; } -> Option A
      4. Quick Check:

        Backed enum syntax with type and cases = B [OK]
      Hint: Backed enums need type after enum name and case keyword [OK]
      Common Mistakes:
      • Omitting the type after enum name
      • Not using 'case' keyword before cases
      • Using wrong type like int for string values
      3.

      What will be the output of the following PHP code?

      enum Color: int {
          case RED = 1;
          case GREEN = 2;
          case BLUE = 3;
      }
      
      echo Color::from(2)->name;
      medium
      A. Color::GREEN
      B. 2
      C. GREEN
      D. Error: No case for value 2

      Solution

      1. Step 1: Understand Color::from(2)

        The from() method returns the enum case matching the value 2, which is GREEN.
      2. Step 2: Access the name property

        Using ->name returns the case name as a string, here "GREEN".
      3. Final Answer:

        GREEN -> Option C
      4. Quick Check:

        from(2) returns GREEN name = GREEN [OK]
      Hint: from(value) returns enum case; ->name gives case name [OK]
      Common Mistakes:
      • Printing the value instead of the name
      • Confusing from() with tryFrom()
      • Expecting full enum class name output
      4.

      Identify the error in the following PHP enum backed values code:

      enum Status: string {
          case PENDING = 'pending';
          case COMPLETED = 'completed';
      }
      
      $status = Status::from('done');
      medium
      A. No error, code runs fine
      B. Compile error: Enum must use int type
      C. Syntax error: Missing semicolon after enum cases
      D. Runtime error: Value 'done' not found in enum cases

      Solution

      1. Step 1: Check the from() method usage

        The from() method throws an error if the value does not match any enum case.
      2. Step 2: Analyze the value 'done'

        Since 'done' is not a defined case value, a runtime error occurs.
      3. Final Answer:

        Runtime error: Value 'done' not found in enum cases -> Option D
      4. Quick Check:

        from() with invalid value causes runtime error = D [OK]
      Hint: from() fails if value not in enum cases [OK]
      Common Mistakes:
      • Assuming from() returns null on failure
      • Thinking syntax error due to semicolons
      • Believing enum must be int type only
      5.

      Given the following enum, which code snippet correctly converts a string value to an enum case safely without throwing an error?

      enum Direction: string {
          case NORTH = 'north';
          case SOUTH = 'south';
          case EAST = 'east';
          case WEST = 'west';
      }

      Choose the correct usage:

      hard
      A. $dir = Direction::tryFrom('east');
      B. $dir = Direction::from('southwest');
      C. $dir = Direction::from('up');
      D. $dir = Direction::tryFrom('down');

      Solution

      1. Step 1: Understand from() vs tryFrom()

        from() throws error if value not found; tryFrom() returns null instead.
      2. Step 2: Check each option's value

        Only tryFrom('east') matches a valid case and safely returns the enum case.
      3. Final Answer:

        $dir = Direction::tryFrom('east'); -> Option A
      4. Quick Check:

        tryFrom() safely converts valid value = C [OK]
      Hint: Use tryFrom() to avoid errors on invalid values [OK]
      Common Mistakes:
      • Using from() with invalid values causing errors
      • Expecting tryFrom() to throw errors
      • Confusing enum case names with values
      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