Manuel PHP
Précédent | Chapitre 33. Creating Variables | Suivant

# Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign (`$`) prefix and are available in all scopes. Examples include `TRUE` and `FALSE`, to name just two.

To create your own constants, you can use the macros in Table 9.13. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

- `CONST_CS` - This constant's name is to be treated as case sensitive.

- `CONST_PERSISTENT` - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a binary OR:

    // register a new constant of type "long"
    REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS | CONST_PERSISTENT);

There are two types of macros - `REGISTER_*_CONSTANT` and`REGISTER_MAIN_*_CONSTANT`. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Figure 33-10. Table 9.13. Macros for Creating Constants

Macro | Description
`REGISTER_LONG_CONSTANT(name, value, flags)` `REGISTER_MAIN_LONG_CONSTANT(name, value, flags)` | Registers a new constant of type long.
`REGISTER_DOUBLE_CONSTANT(name, value, flags)` `REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags)` | Registers a new constant of type double.
`REGISTER_STRING_CONSTANT(name, value, flags)` `REGISTER_MAIN_STRING_CONSTANT(name, value, flags)` | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
`REGISTER_STRINGL_CONSTANT(name, value, length, flags)` `REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags)` | Registers a new constant of type string. The string length is explicitly set to `length`. The specified string must reside in Zend's internal memory.

Précédent | Sommaire | Suivant
Macros for Automatic Global Variable Creation | Niveau supérieur | Duplicating Variable Contents: The Copy Constructor