# PHP Constants

Summary: in this tutorial, you learn about PHP constants and how to use the `define()` function and `const` keyword to define constants.

## Introduction to PHP constants

A constant is simply a name that holds a single value. As its name implies, the value of a constant cannot be changed during the execution of the PHP script.

To define a constant, you use the  `define()` function. The  `define()` function takes the constant’s name as the first argument and the constant value as the second argument. For example:

```.wp-block-code {
border: 0;
}

.wp-block-code > div {
overflow: auto;
}

.shcb-language {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
-webkit-clip-path: inset(50%);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
position: absolute;
width: 1px;
word-wrap: normal;
word-break: normal;
}

.hljs {
box-sizing: border-box;
}

.hljs.shcb-code-table {
display: table;
width: 100%;
}

.hljs.shcb-code-table > .shcb-loc {
color: inherit;
display: table-row;
width: 100%;
}

.hljs.shcb-code-table .shcb-loc > span {
display: table-cell;
}

.wp-block-code code.hljs:not(.shcb-wrap-lines) {
white-space: pre;
}

.wp-block-code code.hljs.shcb-wrap-lines {
white-space: pre-wrap;
}

.hljs.shcb-line-numbers {
border-spacing: 0;
counter-reset: line;
}

.hljs.shcb-line-numbers > .shcb-loc {
counter-increment: line;
}

.hljs.shcb-line-numbers .shcb-loc > span {
}

.hljs.shcb-line-numbers .shcb-loc::before {
border-right: 1px solid #ddd;
content: counter(line);
display: table-cell;
text-align: right;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 1%;
}```<?php

define('WIDTH','1140px');
echo WIDTH;```Code language: PHP (php)```

By convention, constant names are uppercase. Unlike a variable, the constant name doesn’t start with the dollar sign(`\$`).

By default, constant names are case-sensitive. It means that `WIDTH` and `width` are different constants.

It’s possible to define case-insensitive constants. However, it’s deprecated since PHP 7.3

In PHP 5, a constant can hold a simple value like a number, a string, a boolean value. From PHP 7.0, a constant can hold an array. For example:

``````<?php

define( 'ORIGIN', [0, 0] );```Code language: PHP (php)```

Like superglobal variables, you can access constants from anywhere in the script.

## The const keyword

PHP provides you with another way to define a constant via the `const` keyword. Here’s the syntax:

``const CONSTANT_NAME = value;`Code language: PHP (php)`

In this syntax, you define the constant name after the `const` keyword. To assign a value to a constant, you use the assignment operator (=) and the constant value. The constant value can be scalar, e.g., a number, a string, or an array.

The following example uses the `const` keyword to define the `SALES_TAX` constant:

``````<?php

const SALES_TAX = 0.085;

\$gross_price = 100;

\$net_price = \$gross_price * (1 + SALES_TAX);

echo \$net_price; // 108.5```Code language: PHP (php)```

The following example uses the `const` keyword to define the RGB constant that holds an array:

``````<?php

const RGB = ['red', 'green', 'blue'];```Code language: PHP (php)```

## define vs const

First, the `define()` is a function while the `const` is a language construct.

It means that the `define()` function defines a constant at run-time, whereas the `const` keyword defines a constant at compile time.

In other words, you can use the `define()` function to define a constant conditionally like this:

``````<?php

if(condition)
{
define('WIDTH', '1140px');
}```Code language: PHP (php)```

However, you cannot use the `const` keyword to define a constant this way. For example, the syntax of the following code is invalid:

``````<?php

if(condition)
{
const WIDTH = '1140px';
}```Code language: PHP (php)```

Second, the define() function allows you to define a constant with the name that comes from an expression. For example, the following defines three constants `OPTION_1`, `OPTION_2`, and `OPTION_3` with the values 1, 2, and 3.

``````<?php

define('PREFIX', 'OPTION');

define(PREFIX . '_1', 1);
define(PREFIX . '_2', 2);
define(PREFIX . '_3', 3);```Code language: PHP (php)```

However, you cannot use the `const` keyword to define a constant name derived from an expression.

Unless you want to define a constant conditionally or use an expression, you can use the `const` keyword to define constants to make the code more clear.

Note that you can use the `const` keyword to define constants inside classes.

## Summary

• A constant is a name that holds a simple value that cannot be changed during the execution of the script. From PHP 7, a constant can hold an array.
• A constant can be accessed from anywhere in the script.
• Use the `define()` function or `const` keyword to define a constant.
• Use the `define()` function if you want to define a constant conditionally or using an expression.
Did you find this tutorial useful?