开发者学堂课程【PHP 基础入门课程(上) :常量】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/709/detail/12587
常量
内容介绍
一、概念
二、步骤
三、示例
四、小结
思考一下,变量的值可以随时变化的,那如果在进行系统开发的时候,有些数据不希望被乱改怎么办?
所以说此时要用到另外一种数据存储的方式,它叫做常量。这一节就要学习常量,需要掌握的一个目标是了解常量的概念以及 PHP 中常量的使用。
一、概念
常量:
其实它也是一种存储数据的符号,也就是系统内部定义的存储数据的符号,那么它的规则是通常用大写字母,另外一个核心的一点是常量数据一旦被定义,就不可以改变。那么在当前脚本的一个运行过程中,它是不会被任何东西以任何方式进行改变的,只有定义和使用这么一说。
二、步骤
1、定义常量
•使用函数: define (常量名',常量值);
•使用关键字: const 常量名=常量值;
这样就完成了一个定义,那怎么去访问呢?
2、访问常量
•直接访问:常量名;
•使用函数: constant ('常量名");
这是定义和访问,那此时没有说修改和删除,那是因为修改和删除做不了,只可以定义和使用,这是常量的特性。
三、示例
定义一个版本号 VERSION ,那么此时给它一个值1.0版本这是一种方式,使用函数cost 第一个也可以叫3.14这也是一种定义方式,要使用的话会怎么样?直接 echo 或者 constant('VERSION') 就可以了。
看一下代码运行,Php 的一个常量讲解,然后我们首先来定义一个常量,两种方式都可以,第一个 define 关键字,然后第一个要给它的是一个名字叫做 name ,常量通常全大写,比如说我要给它一个值,那么就叫做什么?
就可以叫做 value ,这是给它的一个值。然后接下来还可以使用另外一种方式,比如说 const ,它等于3.14,此时这个使用 const 方式的名字是不需要加引号的,不需要加引号直接定义就可以了,然后定义好了之后,接下来要去访问它,然后怎么办呢?
echo NAME 就可以了。我们来看一下,走一个发现 value 被输出了,说明取到了 name 对应的一个值。
然后第二种再来看一下, echoPI 记一下,3.14也被输出了,这是一种保温方式。那我们再来, echo const 一个,比如说要访问的是 PI ,这个时候必须要接引号,看看能不能访问到,办不到也扫不到了3.14。那另外一个其实也是一样的,所以不要在举同一个例子。那么这就是一个常量的定义和使用。那比如说是不是可以去修改它呢?
可以尝试去修改一下,比如说尝试怎么办呢?
PI=5看看会是个什么效果?它的结果是一个语法错误,不仅仅不是一个等号,又是一个解析错误,所以这种方式本身就是错误的一种方式。所以常量代表不可修改,有人说可不可以用 const 等于一个值呢?那也可以去试一下, const PI 等于四,回头刷新一下,其实给了我们一个警告,说这个常量已经什么定义过了,这个 const PI Already define 已经定义过了,所以不能定义了,那说明常量不能重复定义,那言外之意是那个四已经不存在了,就没有价值了。
值虽然它是一个不影响,好像这个错误比较小,那刷新一下就知道它还是3.14,说明这个修改是失败的。修改失败啊并且不允许修改这就是常量的特性。
1 <?php
2
3
4
5
6 #定义常量
7 define('NAME','value);
8 const PI=3.14;
9
10 #访问
11 echo NAME;
12 echo PI;
13
14 echo constant('PI');
15
16 //PI=5 #错误
17 //const PI =4; #修改失败: 不允许修改
18 echo PI;
#使用函数定义
定义一个版本号,此时在给它一个值1.0版本
define('VERSION',1.0);
这是一种方式
#使用关键字定义
const PI = 3.14;
#直接访问
echo PI;
#使用函数访问
echo constant('VERSION');
常量规则
1、常量名字通常使用大写(允许小写,但是程序员一般不这样去使用,为了区分变量和常量,尤其是在其他的语言当中,没有明确的符号开始变量,那么如果不使用大写的话,那么会导致常量和变量区分不出来,所以说默认都使用大写)
2、名字由字母、下划线和数字组成,不能以数字开头
3、常量名定义应该做到见名知意
4、复杂常量名通常使用下划线法,因为此时就没有所谓的驼峰法了。
5、常量名字可以比较松散,但是不建议使用,如 define ('-_-;笑脸)是系统允许的(访问时就必须使用函数访问)
那来试一下再来定义一个不建议使用的常量,怎么办呢?这个时候还有一个特点,只能使用 define ,因为 const 没有一个引号,系统就会直接就识别了,这样会导致语法错误。
因为不允许出现其他的符号,那 define 怎么办呢?比如说我想出现一个(^-_-^,^smile^),然后给它一个值叫 smile ,同时想那输出呢?先别急着输出,先看一下它有没有会报错,答案是没有。因此说明说明这种方式系统是接受的,那也就是说要输出//echo -_-,那看一下果会什么样子?
又告诉语法错误,不期待出现一个分号,它也不知道要出现什么东西,所以此时不能用这种方式去访问。只能用echo constant,然后后面给它(^-_-^),再看看行不行,刷新一下输出,因此说明这种方式是可以的,这就是常量,但是这种方式不建议用的。
19
20 #定义一个不建议使用的常量名
21 define(^-_-^,^smile^);
22
23 //echo -_-; #错误访问
24 echo constant(^-_-^);
25
最后做一个扩展,PHP7 以后常量允许定义数组常量(一次性定义多个常量),访问时使用数组下标访问#定义数组常量
const MATH = array(
'PI’=> 3.14,
'E'=> 2.72
);
#访问
echo MATH['PI'];
四、小结
1、常量是用来保留一些不希望改变的数据的,因为它只能定义和使用,不能被改变。
2、常量使用函数 define 或者关键字 const 定义,二者有些区别,在后面学习的时候会遇到再进行详细讲解。
3、常量在定义后只能访问,不能修改和删除,如果能修改和删除的话,就和变量没有什么区别了,因为把它删了再去新增一个,也会新置。
4、 PHP 常量在 PHP7 以后允许值为数组
这个后续会详细讲解,这就是 PHP7 数组的第二种存储方式,叫做常量。