Constant and define() Function

This section describes what is a constant, define() function defines a constant name to a value, constant value can retrieved by the name directly or by the constant() function, any string can be used as constant name.

What Is a Constant? A constant is an identifier for a data value. Once defined, the data value identified by a constant can not be changed. PHP supports constants with following basic rules:

1. A constant must be defined with the define(name, value) function. For example, define("PI", 3.14159); defines a constant named as PI to a value of 3.14159.

2. To retrieve the value defined in a constant, you can use the constant name directly in any expression. For example, define("PI", 3.14159); $area = PI * $radius * $radius; uses the value define in PI to calculate the area.

3. You are allowed to use any string for the constant name. For example, define("LONG PI", 3.14159265359); defines a constant named as 'LONG PI' to a value of 3.14159265359. But using special characters in constant names are not recommended.

4. If a constant name contains special characters, you need to use the constant(name) function to retrieve the value defined in the constant. For example, define("LONG PI", 3.14159265359); $area = constant("LONG PI") * $radius * $radius; uses the value defined in "LONG PI" to calculate the area.

5. If you want to know if there is a constant defined for a given constant name, you can use the define(name) function. For example, define("LONG PI", 3.14159265359); defined("LONG PI"); returns TRUE. And defined("LONG RI") returns FALSE.

6. Constants can be defined with only value of scalar data types: boolean, integer, float, and string.

7. The PHP engine provides a number of pre-defined (built-in) constants. For example, __FILE__, __LINE__, PHP_OS, PHP_VERSION, PHP_INT_MAX, DIRECTORY_SEPARATOR, ...

Now let's look at my tutorial example below to confirm some rules mentioned above:

<?php
#  ConstantTest.php
#- Copyright 2003 (c) HerongYang.com. All Rights Reserved.
#
   print "\n PI is not defined as a constant:\n";
   print "    PI: "; var_dump(PI);

   define("PI", 3.14159);
   print "\n PI is defined to a constant now:\n";
   print "    PI: "; var_dump(PI);

   define("LONG PI", 3.14159265359);
   print "\n LONG PI is defined to a constant now:\n";
   print "    LONG PI: "; var_dump(constant("LONG PI"));

   print "\n LONG RI is not defined as a constant:\n";
   print "    LONG PI: "; var_dump(defined("LONG PI"));
   print "    LONG RI: "; var_dump(defined("LONG RI"));

   print "\n Trying to define DAYS to an array:\n";
   define("DAYS", array("Jan"=>31,"Feb"=>28));
   print "    DAYS: "; var_dump(DAYS);

   print "\n PHP built-in constants:\n";
   print "    __FILE__: "; var_dump(__FILE__);
   print "    __LINE__: "; var_dump(__LINE__);
   print "    PHP_OS: "; var_dump(PHP_OS);
   print "    PHP_VERSION: "; var_dump(PHP_VERSION);
   print "    PHP_INT_MAX: "; var_dump(PHP_INT_MAX);
   print "    DIRECTORY_SEPARATOR: "; var_dump(DIRECTORY_SEPARATOR);
?>

If you run this sample script, you should get:

herong> \php\php ConstantTest.php

 PI is not defined as a constant:
    PI: string(2) "PI"

 PI is defined to a constant now:
    PI: float(3.14159)

 LONG PI is defined to a constant now:
    LONG PI: float(3.14159265359)

 LONG RI is not defined as a constant:
    LONG PI: bool(true)
    LONG RI: bool(false)

 Trying to define DAYS to an array:

Warning: Constants may only evaluate to scalar values in
C:\herong\ConstantTest.php on line 20
    DAYS: string(4) "DAYS"

 PHP built-in constants:
    __FILE__: string(43) "C:\herong\ConstantTest.php"
    __LINE__: int(25)
    PHP_OS: string(5) "WINNT"
    PHP_VERSION: string(5) "5.0.4"
    PHP_INT_MAX: int(2147483647)
    DIRECTORY_SEPARATOR: string(1) "\"

Table of Contents

 About This Book

 Introduction and Installation of PHP

 PHP Script File Syntax

 PHP Data Types and Data Literals

Variables, References, and Constants

 Variables and Assignment Operations

 References and Variables

 Variable Variable Name - Name Variables with Expressions

Constant and define() Function

 Expressions, Operations and Type Conversions

 Conditional Statements - "if" and "switch"

 Loop Statements - "while", "for", and "do ... while"

 Function Declaration, Arguments, and Return Values

 Arrays - Ordered Maps

 Interface with Operating System

 Introduction of Class and Object

 Integrating PHP with Apache Web Server

 Retrieving Information from HTTP Requests

 Creating and Managing Sessions in PHP Scripts

 Sending and Receiving Cookies in PHP Scripts

 Controlling HTTP Response Header Lines in PHP Scripts

 Managing File Upload

 MySQL Server Connection and Access Functions

 Functions to Manage Directories, Files and Images

 SOAP Extension Function and Calling Web Services

 SOAP Server Functions and Examples

 Localization Overview of Web Applications

 Using Non-ASCII Characters in HTML Documents

 Using Non-ASCII Characters as PHP Script String Literals

 Receiving Non-ASCII Characters from Input Forms

 "mbstring" Extension and Non-ASCII Encoding Management

 Managing Non-ASCII Character Strings with MySQL Servers

 Parsing and Managing HTML Documents

 Configuring and Sending Out Emails

 Image and Picture Processing

 Managing ZIP Archive Files

 Managing PHP Engine and Modules on macOS

 Managing PHP Engine and Modules on CentOS

 Archived Tutorials

 References

 Full Version in PDF/EPUB