PHP中的Define和Const区别
2024-10-19 07:32:59
我们经常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,那么define和const有什么区别呢?
常量是一个简单的标识符。在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量)。常量默认大小写敏感。通常常量标识符总是大写的。
可以用define()函数来定义常量。在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,php7可以定义数组常量了,先前版本const关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或取消定义。
<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = '周伯通';
echo USERNAME.PHP_EOL;
echo constant("USERNAME"); const ZHOUUSERNAME = '周伯通九阴真经'; define('MYUSERNAME','周伯通九阴真经2');
echo "<pre>";
print_r(get_defined_constants());
?>
常量和变量有如下不同:
1、const是一个语言结构;而define是一个函数,可以通过第三个参数来指定是否区分大小写。true表示大小写不敏感,默认为false
2、const简单易读,编译时要比define快很多。
3、const可在类中使用,用于类成员常量定义,定义后不可修改;define不能在类中使用,可用于全局变量
<?php
class MyClass
{
const USER = '周伯通'; function showConstant() {
echo self::USER . PHP_EOL;
echo constant('USER'); // 注意:Warning: constant(): Couldn't find constant USER
}
}
$class = new MyClass();
$class->showConstant();
4、const是在编译时定义,因此必须处于最顶端的作用区域,不能在函数,循环及if条件中使用;而define是函数,也就是能调用函数的地方都可以使用
<?php
$x = true;
if ($x==1){
//const FOO = 'BAR'; // 无效的invalid
}
if ($x==1){
define('FOO', 'BAR'); // 有效的valid
echo FOO;
}
最新文章
- iOS 判断网络连接状态的几种方法
- 【技巧篇】解决悬浮的<;header>;、<;footer>;遮挡内容的处理技巧
- 手动获取spring的ApplicationContext和bean对象
- ab.exe使用
- Windows Form 中快捷键设置
- linux学习之系统管理、网络配置、软件安装
- 对Spring的理解
- js中如何把字符串转化为对象
- LFS,编译自己的Linux系统 - 完成准备工作
- js取一维数组最大值,最小值
- jquery-ui-multiselect 的使用
- CSS3 box-sizing属性的应用
- win10+ ubuntu12.04双系统安装教程与遇到的问题
- ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。
- 金融量化分析【day110】:Pandas-DataFrame索引和切片
- ssl证书 以及phpstudy配置ssl证书
- .net第四章内容总结
- 使用ScriptableObject创建.asset文件
- 基于HTML5 Canvas 实现地铁站监控
- Jmeter OutofMemory Error
热门文章
- java爬虫案例学习
- Spring中Model、ModelMap及ModelAndView之间的区别
- 购物车自己sql错误
- VS 2013+ ArcGIS 10.3 AddIn 断点不断异常解决
- centos7防火墙配置
- partial 的随笔
- sql server xp_cmdshell 过程中报错原因
- Egret 生成 自带EUI 的微信小游戏 踩坑!
- [Swift]LeetCode49. 字母异位词分组 | Group Anagrams
- ThinkPHP 数据库操作(二) : 增删改查