Constants in classes hold values that do not change. They help keep important data safe and easy to use.
When you want to store a fixed value related to a class, like a version number.
When you need a value that should be the same for all objects of a class.
When you want to avoid magic numbers or strings scattered in your code.
When you want to give a name to a value that never changes, making code clearer.
Syntax
PHP
class ClassName {
const CONSTANT_NAME = value;
}
Constants are declared with the keyword const inside a class.
Constant names are usually uppercase by convention.
Examples
This class has a constant WHEELS set to 4.
PHP
class Car {
const WHEELS = 4;
}
Here, PI is a constant representing the value of pi.
PHP
class Circle {
const PI = 3.14159;
}
This class defines two string constants for user roles.
PHP
class User {
const ROLE_ADMIN = 'admin';
const ROLE_GUEST = 'guest';
}
Sample Program
This program defines a class Fruit with a constant COLOR. It then prints the color using the constant.
PHP
<?php
class Fruit {
const COLOR = 'red';
}
echo"The color of the fruit is " . Fruit::COLOR . ".";
OutputSuccess
Important Notes
You access class constants using the scope resolution operator ::, like ClassName::CONSTANT_NAME.
Constants cannot be changed once set. They are different from variables.
Constants are always public and can be accessed without creating an object.
Summary
Constants store fixed values inside classes.
Use const keyword to declare them.
Access constants with ClassName::CONSTANT_NAME.
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
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.
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.
Final Answer:
const -> Option C
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
Step 1: Recall how to access class constants
Class constants are accessed using the scope resolution operator :: with the class name, like ClassName::CONSTANT.
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.
Final Answer:
ClassName::VERSION -> Option A
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
Step 1: Identify the constant declaration
The class Car declares a constant WHEELS with value 4.
Step 2: Understand the echo statement
The code prints the value of Car::WHEELS, which is 4.
Final Answer:
4 -> Option A
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
Step 1: Verify constant declaration
The class Book correctly declares const TITLE = 'PHP Basics';.
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.
Final Answer:
Code will output 'PHP Basics' without error -> Option D
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
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.
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.
Final Answer:
echo Server::STATUS; -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.