A constant is an identifier (name) for a simple value. As the name suggests, that value cannot change during the execution of the script (except for magic constants, which aren't actually constants). A constant is case-sensitive by default. By convention, constant identifiers 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 thusly: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
See also the Userland Naming Guide.
Example #1 Valid and invalid constant names
<?php
// Valid constant names
define ( "FOO" , "something" );
define ( "FOO2" , "something else" );
define ( "FOO_BAR" , "something more" );
// Invalid constant names
define ( "2FOO" , "something" );
// This is valid, but should be avoided:
// PHP may one day provide a magical constant
// that will break your script
define ( "__FOO__" , "something" );
?> Note: For our purposes here, a letter is a-z, A-Z, and the ASCII characters from 127 through 255 (0x7f-0xff).
Like superglobals, the scope of a constant is global. You can access constants anywhere in your script without regard to scope. For more information on scope, read the manual section on variable scope.
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, float and string) can be contained in constants. Do not define resource 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 wish 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, 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 $foo[bar] is 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:
Example #2 Defining Constants
<?php
define ( "CONSTANT" , "Hello world." );
echo CONSTANT ; // outputs "Hello world."
echo Constant ; // outputs "Constant" and issues a notice.
?> See also Class Constants.
© 2005-2008 BlaBla.cn 版权所有