php中定义常量的两种方法

“常量”的广义概念是:‘不变化的量’(例如:在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的圆的半径、直径数值;物理学中的靠近地面的重力加速度;真空中的光速数值;)下面为大家介绍一下PHP中两种定义常量的方法。

我们这里用pi来举例。

  第一种方式:宏定义,是将Pi定义成一种符号,此时Pi只是3.1415926的别名,在编译期间用3.1415926去取代Pi的值。

  1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。const定义的常量,在程序运行时在常量表中,系统为它分配内存

  2.define定义的常量,预处理时只是直接进行了替换。所以编译时进行数据类型检验const定义的常量,在编译时进行严格的类型检验,可以避免出错。

  3.define定义表达式时要注意“边缘效应”,例如如下定义: #define N 2+3 //我们预想的N值是5,我们这样使用N,int a = N/2; //我们预想的a的值是2.5,可实际上a的值是3.5原因在于在预处理阶段,编译器将 a = N/2处理成了 a = 2+3/2;这就是宏定义的字符串替换的“边缘效应”因此要如下定义:#define N (2+3)。

  第二种方式:是将PI定义成变量,但告诉编译器它的值是固定不变的,如果在程序中试图去修改它的值,在编译时会报错。

  const定义的常量叫做常变量原因有二:const定义常量像变量一样检查类型;const可以在任何地方定义常量,编译器对它的处理过程与变量相似,只是分配内存的地方不同。

  总结起来说,推荐用const ,而不是#define 预处理指令(但是目前看到的是使用#define的较多,难道是方便?有待考量)

  1. const 可以定义数据类型,提高了类型安全性。例如,我们上面可以指定PI 这个常量是double 类型

  2. const 既然是变量(这里有点别扭,它其实是不变的,但名称叫做常值变量), 那么就有地址,适用面更加广

  3. 语法上也更好理解一些

1

2

3

符号常量 #define Pi 3.1415926f;

  

常值变量 const float pi 3.1415926f;

 

php常量分为哪几种类型?

什么是php常量?

所谓常量就是不能改变的量,php常量一旦被定义,就不能被改变或取消定义。这是官方的解释,也是最权威的解释。

php常量通常用来存储一个不被改变也不希望变化的数据,该数据只能是四种标量数据类型的数据:整型(整数),浮点型(小数),字符串,布尔型(true/false)。

常量分为系统内置常量和自定义常量。

最常见的几个系统内置常量为__FILE__ , __LINE__ , PHP_OS ,PHP_VERSION、PHP_OS、TRUE等等。

php自定义常量的命名规范

php常量的命名规则和php变量的命名规则类似但不完全一样。

  • php常量名必须由字母、下划线、数字组成;
  • 不能以数字开头;
  • 是否区分大小写在定义的时候指定;
  • 建议命名时见名知意(看见就知道代表什么意思),用英文单词作为常量名,而且建议字母都大写(如:PI);

php常量的命名:

1

2

3

4

5

6

7

8

9

10

11

<?php

header("content-type:text/html;charset=utf-8");//设置编码,解决中文乱码

/*define("PI-1",3.14); 常量名错误,只能由字母、下划线、数字组成

* define("2PI",3.14);常量名错误,不能以数字开头

*/

define("PI_2",3.14);//正确

define("PI_3",3.142);//正确

echo PI_2;//输出常量PI_2

echo " ";//输出空格

echo PI_3;//输出常量PI_3

?>

运行结果:

1

3.14 3.142

php常量怎么定义?

php常量是用define()函数来定义的,define()函数有两个必选参数和一个可选参数。第一个参数规定常量的名称,也叫标识符;第二个参数规定常量的值,就是一个不希望被改变的标量数据类型的数据;第三个参数是可选参数,用来规定常量名是否区分大小写。如果为TRUE,常量名不区分大小写;如果为FALSE(默认),则区分大小写。

使用define()函数定义常量:

1

2

3

4

5

6

7

8

<?php

header("content-type:text/html;charset=utf-8");//设置编码,解决中文乱码

define("PI2",3.14);//区分大小写

define("PI3",3.142,true);//不区分大小写

echo PI2;//输出常量PI2

echo " ";//输出空格

echo pi3;//输出常量PI3

?>

运行结果:

1

3.14 3.142

转自:https://www.3mooc.com/front/articleinfo/3722

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值