常量介绍
- 特点: 不能修改,不能销毁,不能删除,声明常量后,该常量可以在页面的任意处使用
- 声明常量的方法:const 、define、static
- 命名规范:和变量一样,但是全部大写
const
const是一个语言结构,编译时要比define快,是为全局常量,可在对象里定义,类中使用,可理解为类常量
一般的,我们的代码需要分层,小编的具体分层在另一篇博客上[NULL],有兴趣的话可以去看,在这里,小编以自己的编码实例来演示常量的定义以及方法使用
const常量定义
首先,在做一个项目模块的时候,小编会新开一个Do层存放常量,DO层具体位置看每个项目存放DO的位置
在这里新建一个TestDo.php文件,我们往里面丢东西
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| namespace application\models\domain;
class TestDo {
public const TYPE_SUPERIOR = 'superior_product';
public const TYPE_NEW = 'new_product';
public const SATE_AUDIT_PENDING_FIRST = 'pendingFirstAudit';
public const SATE_AUDIT_FAIL_FIRST = 'firstAuditFailure';
public const SATE_AUDIT_PENDING_SECOND = 'pendingSecondAudit';
public const SATE_AUDIT_PASS_SECOND = 'secondAuditPass';
}
|
常量的使用
紧接下来,我们需要再logic层(处理数据格式)使用这些常量,
首先,use使用这个TestDo。(引入命名空间),然后我们把字符串存放到数组中,做到[key => 常量对应的值;值 => 我们的预期结果],代码方法如下
1 2 3 4 5 6 7 8 9 10 11 12
|
public static function getStatusList(): array { return [ TestDo::SATE_AUDIT_PENDING_FIRST => '待中心审核', TestDo::SATE_AUDIT_FAIL_FIRST => '中心审核失败', TestDo::SATE_AUDIT_PENDING_SECOND => '待经理审核', TestDo::SATE_AUDIT_PASS_SECOND => '经理审核通过', ]; }
|
我们存放在数据库中,一般是常量对应的值,所以对数据要进行格式化,编写此方法,在数据渲染的时候直接引用此方法进行数据格式渲染
1 2 3 4 5 6 7 8 9
|
public static function getStatusCN(string $status): string { $statusMapper = self::getStatusList(); return $statusMapper[$status] ?? '----'; }
|
也可以这样使用
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public static function getDevelopTypeCN(string $developType): string { $developTypeMapper = [ TestDo::TYPE_SUPERIOR => '优化', TestDo::TYPE_NEW => '新品' ];
return $developTypeMapper[$developType] ?? '----'; }
|
数据渲染使用
接下来我们举一个例子:来引用我们定义的方法
1 2 3 4 5
| $array = ['superior_product', 'new_product'];
foreach ($array as $key => $item) { $array[$key] = self::getDevelopTypeCN($item); }
|
在数据量庞大的时候,这样渲染数据简单明了,代码复用率超高,其他开发人员接口也一看就懂,好了,在这里const常量的分享就到这里了