| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> PHP学习笔记5:常量 -> 正文阅读 |
|
[PHP知识库]PHP学习笔记5:常量 |
PHP学习笔记5:常量图源:php.net 语法php常量的基本用途与其它语言类似,即在编译期而非运行期提供一种确定的、不会改变的值:
这些常量通常用于定义软件版本号、作者信息等。 按习惯,常量名通常以全大写字母结合
常量与超全局变量类似,一经定义,可以在任何地方使用:
一般来说,常量必须被定义为基础类型的数值,或者在编译期可以评估结果的表达式(比如简单的数学运算):
但php提供一种特别的方式,可以“在运行时定义常量”:
使用一个没有定义的常量将产生错误:
可以使用
可以通过
这在不知道常量名称,只有包含常量名称的变量时很有用。 使用
常量也可以定义在类中,这里以一个自定义异常类作为说明:
这使用类常量来定义自定义异常类的错误类别,这在以前是一种相当常见的方式,当然从php8.1开始,可以使用枚举来取代。 此外,从php7.1.0开始,类常量可以使用访问修饰符了:
不过在我看来似乎作用不大,一般来说类常量是无需进行封装和保护的。 还需要注意的是,
当然,
预定义常量php的预定义常量的来源很多,包括php内核、扩展等等,可能因为加载的模块不同而不同,这里展示一些常见的预定义常量:
更多的预定义常量可以查看官方手册预定义常量。 魔术常量“魔术常量”其实并不是真正的常量,它们会随着执行代码的不同而不同,通常会保存当前代码的运行相关的环境信息,合理地使用魔术常量可以避免代码中出现不必要的“硬编码”:
上面的代码有很明显的硬编码,这会使得当前应用的部署路径限定死了,只要部署的路径不对,代码就无法运行,甚至根本无法在Linux主机上部署代码,因为Linux压根不会有 更合理的方式是使用魔术变量:
当然这只是用于演示魔术变量的用途,实际上可以使用更灵活的写法:
对于一个完善的Web应用,往往会采用在配置文件中定义 魔术常量都以前后双下划线的方式命名,类似于
完整的魔术常量列表见官方手册魔术常量。 以上就是常量的相关内容,虽然这部分有点少,但我依然决定尽量以PHP手册的章节来组织笔记结构。 谢谢阅读。 往期内容 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 17:12:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |