PHP中define和const的区别

        PHP中有两种定于 常量的方式define和const,两者有以下区别:
        1.const是一种语言结构,而define是一个函数。

        2.const可以在类中使用,而define不可以。在PHP5.3以前,const只能在类中使用,而PHP5.3开始在类外也可以使用。
        3.const不能在条件分支中使用,而define可以。
        4.const只能用普通的常量名称,define可以使用表达式。
        5.const在PHP5.6之前只接受静态的标量,从PHP5.6开始可以使用表达式,define可以使用表达式。
        6.const定义的常量是大小写敏感的,而define可以通过第三个参数来指定是否大小写敏感(true不敏感;false敏感,默认为false)。
        7.const定义常量时考虑命名空间,而define不会。简单来说就是const可以在不同的命名空间下定义同名的常量,而define则不可以。
         常量可以通过常量名直接访问,也可以通过constant()函数访问,通过get_defined_constants()可以获得所有已定义的常量。

<?php
@header("Content-type: text/html; charset=utf-8"); 

const const1="constvalue1";
define("const2","constvalue2",true);
echo const1."\n";
echo constant("const1")."\n";
echo const2."\n";
echo Const2."\n";

class Test{
	const constInClass="inClass";
	function test(){
		if(true){
			define("const"."InIfElse","inIfElse",true);
		}
		
	}
}
echo Test::constInClass."\n";
$test = new Test;
echo constInIfElse."\n";
const number=1<<5;
echo number."\n";
print_r(get_defined_constants()); 
?>

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP ,没有原生的枚举类型,但我们可以使用常量或者类常量来模拟枚举。 方法一:使用常量模拟枚举 使用常量来模拟枚举,可以定义一组常量,代表不同的枚举成员。比如下面的例子,我们定义了一组表示星期几的常量: ``` <?php define('MONDAY', 1); define('TUESDAY', 2); define('WEDNESDAY', 3); define('THURSDAY', 4); define('FRIDAY', 5); define('SATURDAY', 6); define('SUNDAY', 7); ?> ``` 这样,我们就可以使用这些常量来表示不同的枚举成员了。 方法二:使用类常量模拟枚举 使用类常量来模拟枚举,可以定义一个类,类定义一些常量,代表不同的枚举成员。比如下面的例子,我们定义了一个类 Weekday,它包含了一些常量,代表星期几: ``` <?php class Weekday { const MONDAY = 1; const TUESDAY = 2; const WEDNESDAY = 3; const THURSDAY = 4; const FRIDAY = 5; const SATURDAY = 6; const SUNDAY = 7; } ?> ``` 这样,我们就可以使用 Weekday 类定义的常量来表示不同的枚举成员了。 无论是使用常量还是类常量,都可以使用 switch 语句来实现类似枚举的功能。比如下面的例子,我们使用 switch 语句来判断今天是星期几: ``` <?php $today = MONDAY; switch ($today) { case MONDAY: echo "今天是星期一"; break; case TUESDAY: echo "今天是星期二"; break; case WEDNESDAY: echo "今天是星期三"; break; case THURSDAY: echo "今天是星期四"; break; case FRIDAY: echo "今天是星期五"; break; case SATURDAY: echo "今天是星期六"; break; case SUNDAY: echo "今天是星期日"; break; } ?> ``` 输出结果为:今天是星期一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值