Bird
Raised Fist0
PHPprogramming~20 mins

Constants in classes in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Class Constants Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of accessing class constant
What is the output of this PHP code?
PHP
<?php
class Fruit {
    const NAME = 'Apple';
}
echo Fruit::NAME;
ANAME
BApple
CError: Cannot access constant
Dnull
Attempts:
2 left
💡 Hint
Class constants are accessed with :: operator.
❓ Predict Output
intermediate
2:00remaining
Output of constant in subclass
What will this code output?
PHP
<?php
class Vehicle {
    const WHEELS = 4;
}
class Bike extends Vehicle {
    const WHEELS = 2;
}
echo Bike::WHEELS;
A2
Bnull
CError: Cannot override constant
D4
Attempts:
2 left
💡 Hint
Subclass constants can override parent constants.
❓ Predict Output
advanced
2:00remaining
Output of accessing constant with self and static
What is the output of this PHP code?
PHP
<?php
class ParentClass {
    const VALUE = 'Parent';
    public static function showSelf() {
        echo self::VALUE;
    }
    public static function showStatic() {
        echo static::VALUE;
    }
}
class ChildClass extends ParentClass {
    const VALUE = 'Child';
}
ChildClass::showSelf();
ChildClass::showStatic();
AChildParent
BChildChild
CParentParent
DParentChild
Attempts:
2 left
💡 Hint
self:: uses the class where method is defined; static:: uses called class.
❓ Predict Output
advanced
2:00remaining
Output of accessing class constant via object
What will this code output?
PHP
<?php
class Animal {
    const SOUND = 'Roar';
}
$animal = new Animal();
echo $animal::SOUND;
ARoar
BError: Cannot access constant via object
CSOUND
Dnull
Attempts:
2 left
💡 Hint
Since PHP 5.3, you can access constants via object with :: operator.
❓ Predict Output
expert
2:00remaining
Output of constant expression with magic constant
What is the output of this PHP code?
PHP
<?php
class Test {
    const FILE = __FILE__;
    public static function showFile() {
        echo self::FILE;
    }
}
Test::showFile();
AError: Cannot use magic constant in class constant
B__FILE__
CThe full path and filename of the file where this code is saved
Dnull
Attempts:
2 left
💡 Hint
__FILE__ is a magic constant that gives the current file path.

Practice

(1/5)
1. What keyword is used to declare a constant inside a PHP class?
easy
A. let
B. var
C. const
D. static

Solution

  1. Step 1: Understand constant declaration in PHP classes

    In PHP, constants inside classes are declared using the const keyword, which defines a fixed value that cannot change.
  2. Step 2: Differentiate from other keywords

    var is used for properties (deprecated), let is not a PHP keyword, and static is for static properties or methods, not constants.
  3. Final Answer:

    const -> Option C
  4. Quick Check:

    Class constants use const keyword [OK]
Hint: Use 'const' to declare fixed values in classes [OK]
Common Mistakes:
  • Using 'var' instead of 'const'
  • Trying to use 'let' which is not PHP
  • Confusing 'static' with constants
2. Which of the following is the correct syntax to access a class constant named VERSION in PHP?
easy
A. ClassName::VERSION
B. $obj->VERSION
C. ClassName->VERSION
D. $obj:VERSION

Solution

  1. Step 1: Recall how to access class constants

    Class constants are accessed using the scope resolution operator :: with the class name, like ClassName::CONSTANT.
  2. Step 2: Identify incorrect options

    $obj->VERSION tries to access a property, not a constant; ClassName->VERSION is invalid syntax; $obj:VERSION uses single colon which is invalid syntax.
  3. Final Answer:

    ClassName::VERSION -> Option A
  4. Quick Check:

    Access constants with ClassName::CONSTANT [OK]
Hint: Use ClassName::CONSTANT to access class constants [OK]
Common Mistakes:
  • Using object operator -> instead of ::
  • Trying to access constants as properties
  • Confusing variable and class name usage
3. What will be the output of the following PHP code?
class Car {
    const WHEELS = 4;
}
echo Car::WHEELS;
medium
A. 4
B. WHEELS
C. Error: Undefined constant
D. null

Solution

  1. Step 1: Identify the constant declaration

    The class Car declares a constant WHEELS with value 4.
  2. Step 2: Understand the echo statement

    The code prints the value of Car::WHEELS, which is 4.
  3. Final Answer:

    4 -> Option A
  4. Quick Check:

    Class constant value printed = 4 [OK]
Hint: ClassName::CONSTANT prints the constant's value [OK]
Common Mistakes:
  • Expecting the name 'WHEELS' to print
  • Thinking it causes an error
  • Confusing constants with variables
4. What is wrong with this PHP code?
class Book {
    const TITLE = 'PHP Basics';
}

$book = new Book();
echo $book::TITLE;
medium
A. Cannot access constant via object instance with ::
B. Constant TITLE is not declared correctly
C. Missing semicolon after constant declaration
D. Code will output 'PHP Basics' without error

Solution

  1. Step 1: Verify constant declaration

    The class Book correctly declares const TITLE = 'PHP Basics';.
  2. Step 2: Verify access syntax

    $book = new Book(); creates an instance, and $book::TITLE is valid syntax to access the class constant from an instance. The code outputs PHP Basics without error.
  3. Final Answer:

    Code will output 'PHP Basics' without error -> Option D
  4. Quick Check:

    $instance::CONSTANT is valid [OK]
Hint: ClassName::CONSTANT or $instance::CONSTANT both valid [OK]
Common Mistakes:
  • Using -> for constants instead of ::
  • Declaring with var instead of const
  • Thinking $instance::CONSTANT is invalid
5. Given the class below, which code correctly prints the constant STATUS without creating an object?
class Server {
    const STATUS = 'Online';
}
hard
A. echo Server->STATUS;
B. echo Server::STATUS;
C. echo $server::STATUS;
D. echo Server::status;

Solution

  1. Step 1: Identify correct constant access syntax

    Constants are accessed using the class name and the scope resolution operator :: with the exact constant name in uppercase.
  2. Step 2: Evaluate each option

    Server->STATUS is invalid because -> is for object properties; $server::STATUS is invalid because $server is undefined and constants should be accessed via class name; Server::status is wrong due to case sensitivity; only Server::STATUS is correct.
  3. Final Answer:

    echo Server::STATUS; -> Option B
  4. Quick Check:

    Use ClassName::CONSTANT with exact case [OK]
Hint: Use ClassName::CONSTANT with exact uppercase name [OK]
Common Mistakes:
  • Using object operator -> instead of ::
  • Ignoring case sensitivity in constant names
  • Trying to access constants via undefined variables
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