总结

  1. 运行时间:在于const会在代码编译时定义一个常量,而define则是在代码运行时才定义一个常量
  2. 函数内外:const不能在函数内使用,可以作为类静态属性;define可以在函数内也可以在函数外使用,不能作为类属性,
  3. 大小写的:define可以把第三个参数设置为true,设置为对大小写不敏感  const不行
  4. 名字变化:define的名名名称可以变化,const的不可以变化
  5. 变量的用:const不能使用变量,default可以使用变量
  6. 直接数组:const与define都可以直接定义数组
  7. 类内使用:const可以在class与interface中使用,把他视为静态属性,同静态的获取设置方法一样,define不得行!!!
  8. 速度比较:const快些 define慢些

代码

<?php
//define可以正常的使用
//string(4) "aaaa"
if(1){define("aaaa","aaaa");var_dump(aaaa);
}// if(1){
//     // 不期望的const  说明不能再里面使用const
//     // Parse error: syntax error, unexpected 'const' (T_CONST) in
//     // D:\phpstudy\PHPTutorial\WWW\PHPCollection\PHP常量\1.const.php on line 9
//     const aaaa="aaaa";
//     var_dump(aaaa);
// }class  aaaa{const ddd="2222";//这个是错误的!!!!// define("rrrrr","ddddd");public function aaa(){// const aasssa="aaasssss";// var_dump(aasssa);define("rrrrr","我是define的哈哈哈哈哈ddddd");var_dump(rrrrr);}
}
//方法一:在类里面常量被视作静态属性
$a=aaaa::ddd;
// $a=aaaa::ddddddd;
echo "<br>";
var_dump($a);
echo "<br>";
//方法二:
$fff=new aaaa();
const ddd="这个是自己定义的常量eeeee";
@var_dump(ddd);
echo "<br>";
$fff->aaa();// $aaasssss=$fff->aaa();
// var_dump($aaasssss);const BIT_5 = 1 << 5;// 在PHP5.6之后有效,之前无效
define('BIT_6', 1 << 5); // 一直有效
echo "<br>";
echo "11111111111111111111111111";
var_dump(BIT_5);
var_dump(BIT_6);
<?phpconst BIT_5 = 5>1?"aaa":"bbbb";
define('BIT_6', 5>1?"vvv":"gggg");var_dump(BIT_5);
echo "<br>";
var_dump(BIT_6);
<?phpdefine("aaa","bbb",true);var_dump(aaa);
var_dump(AAA);
<?php
// array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
const aaa=[1,2,3,4,5,6];
var_dump(aaa);
echo "<br>";// array(5) { [0]=> int(1) [1]=> int(34) [2]=> int(666) [3]=> int(666) [4]=> int(8888) }
define('bbb',[1,34,666,666,8888]);
var_dump(bbb);
echo "<br>";$t=[1,34,666,666,8888];
define('eee',$t);
var_dump(eee);

PHP的define与const相关推荐

  1. define() vs const 该如何选择?

    使用 define(),除非考虑到可读性.类常量.或关注微优化 1.在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量 ...

  2. php定义常量 define vs const

    常量一旦定义就不能在改变或者取消. 在php中定义常量可以使用define()函数,在php5.3之后同样可以使用const关键字来定义常量. define 和 const的区别 语法区别 // 使用 ...

  3. #define与const的差别

    #define与const的差别 虽然他们在使用中感觉"差不多",但是他们在实现上有什么区别? 请看下面的代码: #define T 13 /*用#define定义的一个常量T*/ ...

  4. define、const、typedef区别

    1.define与const的区别 define生效与预处理阶段,const生效与编译阶段.预处理在编译之前,预处理器将代码中的宏统一替换为指定的字符 .从语义上讲,const是声明一个不可修改的数据 ...

  5. [翻译]PHP中define()和const定义常量的区别

    在PHP中可以通过define()和const两种方式定义常量 可是在开发中我们应该什么时候用define()定义常量,什么时候用const定义常量? 这两种方式定义常量的主要区别是什么? 从5.3版 ...

  6. 2.尽量用const, enum, inline代替#define -- Prefer const, enum, inline to #define.

    1. 我们都知道,#define PRICE 30 是预编译处理器进行预编译的时候执行的,无法在编译器进行编译的过程中看见,因此,当编译出错的时候,通常错误信息是提到30,而不是PRICE,因此程序员 ...

  7. arduino中 #define、const和int 的差别

    首选我们要了解到的一个信息是arduino板子上的两个参数SRAM:2KB,Flash:32KB; 对应到我们使用的电脑呢,你可以认为SRAM是我们的内存,而Flash由是硬盘.先把这个理解清楚. # ...

  8. c语言 define和int,C语言中define与const的用法区别分析

    其实这个是困惑了我好久的问题,没想到在上机课做到的题里找到了答案--我的困惑是:#define与const到底有什么区别. 题目:  代码如下 复制代码 #define N 2 #define M N ...

  9. #define 和 const 区别

    const定义的常数是变量,需要带类型: #define定义的只是常数,不带类型 #define在编译的预处理阶段起作用:const在编译.运行时起作用 #define只是简单的字符串替换,没有类型检 ...

最新文章

  1. FPGA资源利用率报告中的LUT和LUTRAM有什么区别
  2. 今天写了个Win32服务设置软件,呵呵,纯绿色软件
  3. 048_CSS3用户界面
  4. js-ajax-04
  5. ADB安卓调试工具使用总结
  6. ASP.NET Core Web Api之JWT(一)
  7. pythonopencv测距_python opencv单目测距 小孔成像原理
  8. (转)Arcgis for JS之对象捕捉
  9. 做春节海报没有思路?传统节日年味十足,PSD分层模板,给你灵感!
  10. linux运维生产场景常用软件工具一览
  11. PACPerformance
  12. Sublime Text 安装中文、英文字体
  13. php怎么在excel表格中输出换行,Excel表格怎么换行打字
  14. 微信h5互动小游戏制作心得
  15. 入门学习-Python-小甲鱼学习资料-Day031-永久存储:腌制一缸美味的泡菜
  16. 在win10中安装并配置多个JDK不同的版本
  17. 较好的应用计算机,电脑跑分软件哪个好用?哪个比较权威?电脑跑分软件排行榜2017年...
  18. DCB工作机制解析二(ETS,DCBX)
  19. 如何在32、64位Windows7下玩英雄无敌3
  20. 泰坦尼克号生存预测 数据分析+挖掘建模

热门文章

  1. c语言中字符串操作的工具类
  2. 用tomcat 发布mule 服务 (转)
  3. 处理数字_1_计算某列的最小/大值
  4. java高级-多线程编程
  5. python小数据池,代码块的最详细、深入剖析
  6. 论理想中的技术团队——领导力
  7. 【ARM】一步一步移植Linux Kernel 2.6.13到板子
  8. 管理11gRAC基本命令 (转载) 很详细
  9. Tomcat内存设置详解
  10. Ionic(ionicframework)一款接近原生的Html5移动App开发框架 中文网