You can define a constant by using the
define()-function or by using the
const keyword outside a class definition as
of PHP 5.3.0. Once a constant is defined, it can never be
changed or undefined.
Only scalar data (boolean, integer,
float and string) can be contained
in constants prior to PHP 5.6. From PHP 5.6 onwards, it is also possible
to define an array constant. It is possible to define
constants as a resource, but it should be avoided, as it can
cause unexpected results.
You can get the value of a constant by simply specifying its name.
Unlike with variables, you should not prepend
a constant with a $.
You can also use the function constant() to
read a constant's value if you wish to obtain the constant's name
Use get_defined_constants() to get a list of
all defined constants.
Constants and (global) variables are in a different namespace.
This implies that for example
$TRUE are generally different.
If you use an undefined constant, PHP assumes that you mean
the name of the constant itself, just as if you called it as
a string (CONSTANT vs "CONSTANT"). An error of level
E_NOTICE will be issued
when this happens. See also the manual entry on why
wrong (unless you first define()
bar as a constant). If you simply want to check if a
constant is set, use the defined() function.
These are the differences between constants and variables:
Constants do not have a dollar sign ($)
Constants may only be defined using the
define() function, not by simple assignment;
Constants may be defined and accessed anywhere without regard
to variable scoping rules;
Constants may not be redefined or undefined once they have been
Constants may only evaluate to scalar values, or scalar or array values
in PHP 5.6 and later.
Example #1 Defining Constants
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
Example #2 Defining Constants using the const keyword
// Works as of PHP 5.3.0
const CONSTANT = 'Hello World';
// Works as of PHP 5.6.0
const ANOTHER_CONST = CONSTANT.'; Goodbye World';
As opposed to defining constants using define(),
constants defined using the const keyword must be
declared at the top-level scope because they are defined at compile-time.
This means that they cannot be declared inside functions, loops,
if statements or try/
See also Class Constants.