常量介绍
- 特点: 不能修改,不能销毁,不能删除,声明常量后,该常量可以在页面的任意处使用
- 声明常量的方法:const 、define、static
- 命名规范:和变量一样,但是全部大写
const
const是一个语言结构,编译时要比define快,是为全局常量,可在对象里定义,类中使用,可理解为类常量
一般的,我们的代码需要分层,小编的具体分层在另一篇博客上[NULL],有兴趣的话可以去看,在这里,小编以自己的编码实例来演示常量的定义以及方法使用
实战例子
首先,在做一个项目模块的时候,小编会新开一个Do层存放常量,DO层具体位置看每个项目存放DO的位置
- 常量的定义
在这里新建一个TestDo.php文件,我们往里面丢东西
/**
* Class TestDo
*/
class TestDo
{
/**
* 待中心审核
* @var string
*/
public const SATE_AUDIT_PENDING_FIRST = 'pendingFirstAudit';
/**
* 中心审核失败
* @var string
*/
public const SATE_AUDIT_FAIL_FIRST = 'firstAuditFailure';
/**
* 待经理审核
* @var string
*/
public const SATE_AUDIT_PENDING_SECOND = 'pendingSecondAudit';
/**
* 经理审核通过
* @var string
*/
public const SATE_AUDIT_PASS_SECOND = 'secondAuditPass';
}
- 常量的使用
紧接下来,我们需要再logic层(处理数据格式)使用这些常量,
首先,use使用这个TestDo。(引入命名空间),然后我们把字符串存放到数组中,做到[key => 常量对应的值;值 => 我们的预期结果],代码方法如下
/**
* @return array
*/
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 => '经理审核通过',
];
}
- 常量渲染定义方法
我们存放在数据库中,一般是常量对应的值,所以对数据要进行格式化,编写此方法,在数据渲染的时候直接引用此方法进行数据格式渲染
/**
* @param string $status
* @return string
*/
public static function getStatusCN(string $status): string
{
$statusMapper = self::getStatusList();
return $statusMapper[$status] ?? '----';
}
也可以这样使用
/**
* @param string $developType
* @return string
*/
public static function getDevelopTypeCN(string $developType): string
{
$developTypeMapper = [
TestDo::SATE_AUDIT_PENDING_FIRST => '待中心审核',
TestDo::SATE_AUDIT_FAIL_FIRST => '中心审核失败'
];
return $developTypeMapper[$developType] ?? '----';
}
- 列表字段渲染
接下来我们举一个例子:来引用我们定义的方法
$array = [
['id' => '1', 'audit' => 'pendingFirstAudit'],
['id' => '2', 'audit' => 'firstAuditFailure'],
];
foreach ($array as $key => $item) {
$array[$key] = self::getDevelopTypeCN($item);
}
在数据量庞大的时候,这样渲染数据简单明了,代码复用率超高,其他开发人员接口也一看就懂,好了,在这里const常量的分享就到这里了