<?php// 定义常量define("PI", 3.14);define("GREETING", "Hello, World!");// 利用常量echo PI; // 输出:3.14echo GREETING; // 输出:Hello, World!?>
但是,你不能直接在类的内部利用 define() 来定义常量。这是由于 define() 定义的常量是全局的,不属于任何特定的类。如果你想在类的内部定义常量,你该当利用 const 关键字。
const关键字
在 PHP 中,您还可以利用 const 关键字来定义常量。与 define() 函数不同,利用 const 定义的常量是在编译时创建的,并且只能在最顶层的浸染域中定义。
以下是利用 const 关键字定义和利用常量的示例:
<?php// 定义常量const PI = 3.14;const GREETING = "Hello, World!";// 利用常量echo PI; // 输出:3.14echo GREETING; // 输出:Hello, World!?>
const 在 PHP 中用于定义常量,这些常量在编译阶段就被处理了,以是它们的速率每每比利用 define() 定义的常量快。此外,const 的语法须要它们被定义在它们所在的浸染域的顶部,这使得它们特殊适宜用于类的常量定义。
主要的是要把稳,const 不能在条件语句(如 if)中利用,由于它们须要在编译阶段就被处理。这和 define() 是不同的,define() 定义的常量是在运行时定义的,因此可以在 if 语句中利用。
特殊把稳的点
在php中,""(空字符串)也可以当中常量的名字,但是直接echo "",无法得到定义常量的值,而须要通过const函数获取常量的值,例如:
define('', '123');echo '';// 利用 一个函数来获取echo constant('') ;
预定义常量
PHP 中有一些预定义常量,它们供应了有关 PHP 环境和配置的信息。以下是一些常见的预定义常量:
<?phpecho PHP_VERSION; // 输出当前 PHP 解析器的版本号echo PHP_OS; // 输出当前操作系统的名称echo PHP_EOL; // 输出当前操作系统的换行符?>
魔术常量
在 PHP 中,有一些分外的常量被称为魔术常量(Magic Constants)。这些常量以 __(双下划线)开头。
__LINE__:当前行号的数字。__FILE__:当前文件的完全路径和文件名。__DIR__:当前文件所在的目录。__FUNCTION__:当前函数或方法的名称。__CLASS__:当前类的名称。__TRAIT__:当前特性(Trait)的名称。__METHOD__:当前方法的名称。__NAMESPACE__:当前命名空间的名称。
这些魔术常量在运行时自动被解析并更换为相应的值。它们供应了一种方便的办法来获取关于代码实行高下文的信息。
以下是利用魔术常量的示例:
<?phpecho __LINE__; // 输出当前行号的数字echo __FILE__; // 输出当前文件的完全路径和文件名echo __DIR__; // 输出当前文件所在的目录echo __FUNCTION__; // 输出当前函数或方法的名称echo __CLASS__; // 输出当前类的名称echo __TRAIT__; // 输出当前特性(Trait)的名称echo __METHOD__; // 输出当前方法的名称echo __NAMESPACE__; // 输出当前命名空间的名称?>
这些魔术常量可以用于调试、日志记录和动态获取代码的信息。它们为开拓职员供应了一种方便的办法来访问与代码实行环境干系的元数据。
普通的说,这些常量的值系统可以改变,但用户无法改变。