PHP基础教程(24)PHP语言基础之PHP常量:看完这篇,别再问我PHP常量是什么了!资深程序员带你玩转“代码里的钢印”

一、 开场白:变量是个“海王”,常量才是“铁憨憨”

咱们写PHP的,谁没声明过几百个变量?$name$age,想改就改,灵活得像个“海王”。但代码世界里,有时候我们需要一些“铁憨憨”——一旦认定,至死不渝。这就是常量

你可以把常量想象成你代码里的纹身(或者说是“钢印”)。你深思熟虑后决定了一个值,把它刻在皮肤(代码)上,以后想改?那就得付出点“血”的代价(重构代码)。比如,圆周率π(3.1415926...)、一天有24小时、网站的根目录路径……这些值从逻辑上讲,在程序运行中根本不应该被改变

用一个错误的变量赋值比喻来解释:

// 变量:你的心情,说变就变
$mood = '开心';
$mood = '烦躁'; // 没问题,瞬间变脸

// 常量:你的血型,生来注定
define('BLOOD_TYPE', 'O型');
// BLOOD_TYPE = 'A型'; // 致命错误!想改血型?下辈子吧!

所以,使用常量的第一个核心思想:定义那些在业务逻辑或系统环境中,自始至终都保持不变的值。

二、 定义常量:define()const,哪个是你的菜?

PHP给了我们两把“纹身枪”来刻下常量:古老的define()和后来居上的const。它们看起来干一样的事,但细节上可大有不同。

1. define():江湖老炮,灵活不羁

define('SITE_NAME', '我的摸鱼博客');
define('MAX_LOGIN_ATTEMPTS', 5);
define('PI', 3.1415926535);
define('IS_DEBUG', true); // 常量也可以是布尔值哦!
  • 特点:可在运行时(任何地方,甚至在函数或条件判断内部)动态定义。
  • 大小写:默认区分大小写。但第三个参数传true就能变成“大小写模糊患者”:define('TASTE', '酸甜', true); echo TaStE; // 输出“酸甜”。不过这个功能…咱尽量别用,容易让队友 confusion。

2. const:后起之秀,严谨规矩

const SITE_NAME = '我的正经项目';
const MAX_USERS = 1000;

// const IS_OPEN = get_config('is_open'); // 错误!const不接受函数返回值或变量
  • 特点:在编译时定义,必须在全局作用域或类作用的顶层声明。不能在函数、循环或if语句里用。所以它更静态,性能理论上微乎其微地好一丢丢。
  • 名字:必须遵循和变量一样的命名规则(字母或下划线开头)。

3. 主要区别与选择建议

特性

define()

const

定义时机

运行时

编译时

作用域

</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值