近日,在phpclass中看到一个将数组定义为常量的类,本人也比较喜欢使用定义常量作为配置项的开发方式,把相关的一组配置项定义为常量,也会经常用到.于是下来看看,原理很简单,在此记录一下:
1)使用两个静态的方法set和get来设定和获取内容
2)set的时候,将数组使用var_export函数转化,作为define的值
3)get的时候,将常量值使用eval(\'return \'.$constName.";")方式反解
从上面可以看出,实现方法只是将数组转成可反解的字串存到常量中,用的时候再进行反解,由此可见,使用serialize和unserialize可以更方便地实现此要求,另外serialize还可以对object和resource类型的进行处理,也就是说,理论上讲,对象和资源(文件句柄)等都可以定义为常量的.