我需要打印常量名称而不是数字:
configurations {
localDatabase
}
dependencies {
compile "org.springframework.boot:spring-boot-starter-web"
compile "org.springframework.boot:spring-boot-starter-jdbc"
// compile "..." // Dependency for the real, non-in memory, database
localDatabase 'com.h2database:h2'
}
task bootRunLocal(type: BootRun, group: ApplicationPlugin.APPLICATION_GROUP, dependsOn: classes) {
main = 'test.BootApplication'
classpath = sourceSets.main.runtimeClasspath + configurations.localDatabase
systemProperty "spring.profiles.active", "local-db-h2"
}
我有一个函数:>>> s = '\ud800'
>>> s.encode('UTF-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'utf-8' codec can't encode character '\ud800' in position 0: surrogates not allowed
在这种情况下,它返回一个数字0或1。
如何使用PHP将const UNKNOWN或PERSON转换为文本,而无需执行以下操作:
class Type
{
const UNKNOWN = 0;
const PERSON = 1;
}
但要致电:
entity->getType()
?
答案 0 :(得分:2)
实际上,您的问题没有真正的解决方案。一个简单的例子,为什么这在PHP中无法使用:
const VAR1 = 1;
const VAR2 = 1;
这是类常量的总有效用法,但是由于值1
有多种用途,因此没有1
到任何名称的映射。
也许可以使用反射api返回具有匹配值的第一个常量,但是不建议在生产环境中执行此操作,因为这样做的速度不是很快(而且正如我之前所说,如果您以后可以更改代码)
如果要提高const值的可读性,则应考虑使用字符串作为常量而不是数字的值。