PHP的define与const

总结

  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);
<?php

const BIT_5 = 5>1?"aaa":"bbbb";
define('BIT_6', 5>1?"vvv":"gggg");

var_dump(BIT_5);
echo "<br>";
var_dump(BIT_6);
<?php

define("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);


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值