php预处理常量是什么意思,第九讲PHP中的常量、预定义常量和魔术常量

一、什么是常量呢?所谓常量就是不能改变的量,PHP 中常量一旦被定义,就不能被修改或取消定义。PHP 常量通常用来存储一个不被改变也不希望变化的数据,该数据只能是四种标量数据类型的数据:整型、浮点型、字符串、布尔型,不过从 PHP7 开始常量支持了数组(array)类型。

与变量相比,常量具有以下几个特点:

1.常量前面没有美元符号($);

2.常量只能用 define() 和 const 定义;

3.常量的作用域是全局的;

4.常量一旦被定义就不能被重新定义或者取消定义。

二.定义常量合法的常量名只能以字母和下划线开始,后面可以跟着任意长度的字母、数字或下划线。在 PHP 中可以通过 define() 函数定义一个常量,define() 函数的语法如下:

define($name, $value  $case_insensitive =false)

第一个参数表示的是常量的名称

第二个参数表示的是常量的值

第三个参数是一个可选参数,默认为大小写敏感,如果设定为true的话则表示大小写敏感

除了可以使用 define() 函数之外,还可以使用 const 关键字来定义常量,const 关键字的语法如下:

define("LANGUAGE","php");

const url = 'http://www.baidu.com';

?>

三、获取常量的值

想要获取常量的值,除了可以直接使用常量名外,还可以使用 constant() 函数,使用函数和直接使用常量名的效果是一样的。但使用函数可以动态输出不同的常量,在使用上要灵活、方便得多,constant() 函数的语法格式为:constant(string $name);

其中 $name 为要获取的常量名称,也可以是存储常量名的变量。如果成功则返回常量的值;如果常量未定义则返回一个 E_WARNING 级别的错误。示例代码如下<?php

define("LANGUAGE","php");

$name =  "LANGUAGE";

$language = constant($name);

echo $language;

?>

四.要判断一个常量是否已经定义,可以使用 defined() 函数。函数的语法格式如下:definded($name)

其中 $name 为待判断的常量名称,函数会返回一个 bool 类型的值,常量已定义则返回 true,未定义则返回 false。示例代码如下<?php

$result =defined("LANGUAGE","PHP");

var_dump($result);

?>

运行结果:

true

五.预定义常量

预定义常量顾名思义也就是 PHP 中预先定义好的常量,使用这些预定义常量可以帮助我们来获取一些 PHP 中的信息,比如,我们可以使用预定义常量来获取当前电脑的操作系统,当前使用的 PHP 版本信息等等。另外需要注意的是预定义常量是区分大小写的。

下面列举了一些 PHP 中的预定义常量:PHP_VERSION:当前 PHP 的版本号;

PHP_OS:当前的操作系统名称;

PHP_EOL:系统换行符,Windows 是(\r\n),Linux 是(\n),MAC 是(\r);

PHP_INT_MAX:当前 PHP 支持的最大整数;

PHP_INT_MIN:当前 PHP 支持的最小整数;

PHP_EXTENSION_DIR:PHP 的扩展目录;

TRUE:布尔类型的 true;

FALSE:布尔类型的 false;

NULL:Null 值。

魔术常量

魔术常量属于特殊的预定义常量,这些常量可以根据它们的使用位置而变化。魔术常量通常以两个下划线__开头,并以两个下划线__结尾。PHP 中魔术常量有八个,如下所示:

__LINE__ :文件中的当前行号;

__FILE__:当前文件的绝对路径(包含文件名);

__DIR__:当前文件的绝对路径(不包含文件名),等价于 dirname(__FILE__);

__FUNCTION__:当前函数(或方法)的名称;

__CLASS__:当前的类名(包括该类的作用区域或命名空间);

__TRAIT__:当前的 trait 名称(包括该 trait 的作用区域或命名空间);

__METHOD__:当前的方法名(包括类名);

__NAMESPACE__:当前文件的命名空间的名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值