php中的define有什么用
define是PHP中的一个内置函数,用于定义一个常量。
define()函数定义常量
合法的常量名只能以字母和下划线开始,后面可以跟着任意长度的字母、数字或下划线。在 PHP 中可以通过 define() 函数定义一个常量,define() 函数的语法如下:
define($name, $value , $case_insensitive)
-
$name 必选参数,常量名称(需要使用双引号或单引号包裹)
-
$value 必选参数,常量的值
-
$case_insensitive 可选参数,指定是否大小写敏感,默认是大小写敏感的,设定为 true 则表示大小写不敏感
<?php
header("Content-type:text/html;charset=utf-8");
define('WebSite', 'php中文网');
echo WebSite.'<br>';
?>
扩展知识:
const关键字定义常量
在php5.3.0以后,可以使用const关键字在类定义的外部定义常量,先前版本const关键字只能在类(class)中使用。
语法:
const 常量名 = 常量值;
示例:
<?php
const FOO = 'BAR';
echo FOO.'<br>';
?>
define() 和 const 的区别:
const是在编译时定义常量,而define()方法是在运行时定义常量。
const不能用在if语句中, defne()能用在if语句中。
if(...) {
const FOO = 'BAR';//错误
}
if(...) {
define('FOO', 'BAR');//正确
}
define()的一个常用场景是先判断常量是否已经定义再定义常量:
if(defined('FOO)) {
define('FOO', 'BAR')
}
const 定义常量时,值只能是静态标量(数字, 字符串, true,false, null), 而define()方法可以把任意表达式的值用作常量的值。从PHP5.6开始const也允许把表达式用作常量的值了。
const BIT_5 = 1 << 5; //PHP5.6后支持,之前的PHP版本不支持
define('BIT_5', 1 << 5);// 所有PHP版本都支持const 只允许简单的常量名,而define()可以把任何表达式的值用作常量名
for ($i = 0; $i < 32; $i ) {
define('BIT_' . $i, 1 << $i);
}
const 定义的常量常量名是大小写敏感的,而传递true给define()方法的第三个参数时可以定义大小写不敏感的常量。
define('FOO', 'BAR', true);
echo FOO; //BAR
echo foo; //BAR
上面列举的都是const相较define()而言的一些缺点或者不灵活的地方,下面我们看一下为什么我个人推荐用const而不是define()来定义常量(除非要在上述列举的场景中定义常量)。
const 具有更好的可读性,const是语言结构而不是函数,而且与在类中定义类常量的形式保持一致。
const在当前的命名空间中定义常量, 而define()要实现类似效果必须在定义时传递完整的命名空间名称:
namespace A\B\C;
//To define the constant A\B\C\FOO:
const FOO = 'BAR';
define('A\B\C\FOO', 'BAR');
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfbief
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01