- Table of Contents
- Syntax
- Predefined constants
A constant is a identifier (name) for a simple value. As the name suggests, that value
cannot change during the execution of the script (the magic constants __FILE__ and
__LINE__ are the only exception). A constant is case-sensitive by default. By
convention constants are always uppercase.
The name of a constant follows the same rules as any label in PHP. A valid constant name
starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As
a regular expression, it would be expressed thus:
[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
Note: For our purposes here, a letter is a-z, A-Z, and the ASCII characters from 127
through 255 (0x7f-0xff).
The scope of a constant is global.
You can define a constant by using the
define()-function. Once a constant is defined, it can never be changed or undefined.
Only scalar data (boolean, integer,
double and string) can be contained in
constants.
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 are to
obtain the constant's name dynamically. Use
get_defined_constants() to get a list of all defined constants.
Note: Constants and (global) variables are in a different namespace. This implies
that for example TRUE and $TRUE are generally different.
If you use an undefined constant, PHP assumes that you mean the name of the constant
itself. A notice will be issued when this happens. Use
the defined()-function if you want to know if a constant
is set.
This are the differences with variables:
-
Constants do not have a dollar sign ($) before them;
-
Constants may be defined and accessed anywhere without regard to variable scoping
rules;
-
Constants may not be redefined or undefined once they have been set; and
-
Constants may only evaluate to scalar values.
|
Example 8-1. Defining Constants
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
|
|
|