在 PHP 中比较 define() 和 const
众所周知,define() 和 const 都用于在 PHP 脚本中声明常量。
语法
<?php
const VAR = 'FOO'
define('VAR', 'FOO');
?>我们来讨论一下这两个常量之间的区别。
- 这两个常量之间最基本的区别是:const 在编译时定义常量,而 define() 在运行时定义常量。
- 我们不能使用 const 关键字在条件块中声明常量,但使用 define() 可以实现此目的。
<?php if(){ const VAR = 'FOO'; // invalid } if(){ define('VAR', 'FOO'); //valid } ?>- const 接受静态标量(数字、字符串或其他常量,如 true、false、null、__FILE__),而 define() 接受任何表达式。
const 始终区分大小写,而 define() 允许通过将 true 作为第三个参数传递来定义不区分大小写的常量。
- const 还可以用在类或接口中来声明类常量或接口常量,而 define() 不能用于此目的
<?php class abc{ const VAR = 2; // valid echo VAR; // valid } // but class xyz{ define('XUV', 2); // invalid echo XUV;// invalid } ?>- 上面的例子表明,我们可以用 const 关键字在类内部声明常量,但不能用 define() 在类内部声明常量。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP