常量| 学习笔记

简介: 快速学习常量。

开发者学堂课程【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 数组的第二种存储方式,叫做常量。

相关文章
|
3天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1050 151
|
4天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1735 9
|
9天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
683 152
|
11天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
647 12
|
6天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
409 4