define

(PHP 4, PHP 5, PHP 7, PHP 8)

defineDefines a named constant

Description

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool

Defines a named constant at runtime.

Parameters

constant_name

The name of the constant.

Note:

It is possible to define() constants with reserved or even invalid names, whose value can (only) be retrieved with constant(). However, doing so is not recommended.

value

The value of the constant. In PHP 5, value must be a scalar value (int, float, string, bool, or null). In PHP 7, array values are also accepted.

Warning

While it is possible to define resource constants, it is not recommended and may cause unpredictable behavior.

case_insensitive

If set to true, the constant will be defined case-insensitive. The default behavior is case-sensitive; i.e. CONSTANT and Constant represent different values.

Warning

Defining case-insensitive constants is deprecated as of PHP 7.3.0. As of PHP 8.0.0, only false is an acceptable value, passing true will produce a warning.

Note:

Case-insensitive constants are stored as lower-case.

Return Values

Returns true on success or false on failure.

Changelog

Version Description
8.0.0 Passing true to case_insensitive now emits an E_WARNING. Passing false is still allowed.
7.3.0 case_insensitive has been deprecated and will be removed in version 8.0.0.
7.0.0 array values are allowed.

Examples

Example #1 Defining Constants

<?php
define
("CONSTANT""Hello world.");
echo 
CONSTANT// outputs "Hello world."
echo Constant// outputs "Constant" and issues a notice.

define("GREETING""Hello you."true);
echo 
GREETING// outputs "Hello you."
echo Greeting// outputs "Hello you."

// Works as of PHP 7
define('ANIMALS', array(
    
'dog',
    
'cat',
    
'bird'
));
echo 
ANIMALS[1]; // outputs "cat"

?>

Example #2 Constants with Reserved Names

This example illustrates the possibility to define a constant with the same name as a magic constant. Since the resulting behavior is obviously confusing, it is not recommended to do this in practise, though.

<?php
var_dump
(defined('__LINE__'));
var_dump(define('__LINE__''test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>

The above example will output:

bool(false)
bool(true)
string(4) "test"
int(5)

See Also

Here you can write a comment


Please enter at least 10 characters.
Loading... Please wait.
* Pflichtangabe
There are no comments available yet.

Total Commander 11.00 (final) is available! What's new?

Total Commander, a popular file manager, has recently released its latest version, 11.00. With a variety of new features and corrections, this version offers users an enhanced and optimized experience. ...

admin

Autor : admin
Category: Software-Updates

Which technologies should a PHP programmer master?

In today's digital world, the role of a PHP programmer is of great importance. ...

admin

Autor : admin
Category: Miscellaneous

PHPUnit version 10 released

PHPUnit version 10 released

Version 10 of the popular test framework PHPUnit has been released and is available for download. ...

TheMax

Autor : TheMax
Category: Software & Web-Development

Publish a tutorial

Share your knowledge with other developers worldwide

Share your knowledge with other developers worldwide

You are a professional in your field and want to share your knowledge, then sign up now and share it with our PHP community

learn more

Publish a tutorial