解析php中const与define的应用区别_php技巧

1、const用于类成员变量定义,一旦定义且不能改变其值。define定义全局常量,在任何地方都可以访问。
2、define不能在类中定义而const可以。
3、const不能在条件语句中定义常量

复制代码 代码如下:

if (...) {
    const FOO = 'BAR';    // invalid
}
but
if (...) {
    define('FOO', 'BAR'); // valid
}

4、const采用一个普通的常量名称,define可以采用表达式作为名称。

复制代码 代码如下:

const  FOO = 'BAR';
for ($i = 0; $i < 32; ++$i) {
    define('BIT_' . $i, 1 << $i);
}

5、const只能接受静态的标量,而define可以采用任何表达式。

复制代码 代码如下:

const BIT_5 = 1 << 5;    // invalid
but
define('BIT_5', 1 << 5); // valid

6、const 总是大小写敏感,然而define()可以通过第三个参数来定义大小写不敏感的常量

复制代码 代码如下:

define('FOO', 'BAR', true); 
echo FOO; // BAR
echo foo; // BAR

总结:
使用const简单易读,它本身是一个语言结构,而define是一个方法,用const定义在编译时比define快很多。

时间: 2024-10-21 11:00:57

解析php中const与define的应用区别_php技巧的相关文章

解析php中static,const与define的使用区别_php技巧

define部分:宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段.(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议.)宏的语法为:#define 宏名称 宏值作为一种建议和一种广大程序员共同的习惯,宏名称经常使用全部大写的字母.利用宏的优点:1)让代码更简洁明了当然,这有赖于你为宏取一个适当的名字.一般来说,宏的名字更要注重有明确直观的意义,有时宁可让它长点.2)方便代码维护对宏的处理,在编译过程中称为"预处理".也就是说在正式编译前,编译器必须先将代码出现的宏,用

深入解析PHP中逗号与点号的区别_php技巧

复制代码 代码如下:  echo 'abc'.'def'; //用点号连接字符串  echo 'abc','def'; //用逗号连接字符串 那么下面我们就举一些例子.来认清楚他们之前的区别. 复制代码 代码如下:  echo '1+5=' . 1+5; 看看上面的.输出的结果是6..而不是1+5=6.有些神奇吧?更神奇的是你看下面的例子. 复制代码 代码如下:  echo "1+5=" . 5+1;  //输出2 结果十分奇怪.我们看到.我们把5和1换下位置.结果就变成2了.为什么会

解析php中array_merge与array+array的区别_php技巧

array_merge是丢弃原来的数字的key,而保留字符串形式的key,然后组成一个新的数组,不管键名是否一样,都不合并,除非键名和value同时一样并且还必须是字符串形式的key才合并.而array+array就是不管你是什么情况,它都只会先把前面的数组的数据先放到新生成的数组中,之后再看第二个array是否比第一个数组个数多,多的就添加进来,它只数个数,但是这种情况它会添加进来:$a = array('d'=>'aass','e'=>'adsdfd','asd'=>'asdsdd'

解析PHP中一些可能会被忽略的问题_php技巧

1.echo和print的区别PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1.$r = print "Hello World";这意味着print可用在一些复杂的表达式中,而echo则不行.但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句. 2.incl

解析PHP中$_FILES的使用以及注意事项_php技巧

$_FILES数组内容如下:$_FILES['myFile']['name'] 客户端文件的原名称.$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif".$_FILES['myFile']['size'] 已上传文件的大小,单位为字节.$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认.可以在php.ini的upload_tmp_dir 指定,但用

解析PHP中如何将数组变量写入文件_php技巧

在用PHP记录日志,或者是 Ajax 请求出错想要 debug 的时候.我们一般都会将信息写入到一个指定的文件当中.然后根据相应的信息来处理问题.比如笔者最喜欢在用 Ajax 取不到数据的时候,在PHP脚本里面加上下面一段代码 复制代码 代码如下: $fp = fopen('./a.txt', 'a+b'); fwrite($fp, $content); fclose($fp); 但是,这里有一个问题.那就是 $content 是一个数组怎么办?你可能会说,我循环输出.那要是多维数组呢?我只是为

解析php中eclipse 用空格替换 tab键_php技巧

本人用eclipse进行PHP项目开发,根据公司开发规范,要用4个空格替换掉tab键,在网上搜了好多,都不太全面,现在将详细的配置陈列如下:首先进入首选项:窗口(windows)->首选项(preferences...)1.  windows=>preferences=>general=>editors=>text editors  勾选 "insert spaces for tabs"2.  windows=>preferences=>php

php中time()与$_SERVER[REQUEST_TIME]用法区别_php技巧

本文实例详细讲述了php中time()与$_SERVER[REQUEST_TIME]用法的区别.分享给大家供大家参考.具体分析如下: 简单的说time()与$_SERVER["REQUEST_TIME"]都是获得时间的,但time返回当前的 Unix 时间戳而$_SERVER["REQUEST_TIME"]得到请求开始时的时间戳,稍有区别.1. time() 获取当前的系统时间戳 int time(void) : 返回当前的 Unix 时间戳 (返回自从 Unix

PHP中使用CURL获取页面title例子_php技巧

通过PHP获取页面title内容的实战演示: 范例代码: 复制代码 代码如下: <?php   /*  功能: 取得 URL 页面上的 <title> 内容     参数:$_POST['url']  */      // 设置最长执行的秒数   ini_set ("expect.timeout", 30);   set_time_limit(30);      // 检查 URL   if(!isset($_POST['url']) || $_POST['url']