php - PHP 7.4:如何检查类型属性是否已初始化(包括使用 null 进行初始化)?
问题描述
我有A类:
class A
{
private ?string $typed;
public function isTypedInitialized(): bool
{
// ???
}
}
如何检查 $this->typed 是否已经用包括 null 在内的任何值初始化?isset() 不符合我的需要,因为它为 null 返回 false。
解决方案
我在反序列化对对象的请求时完成了这项检查,并且检查初始化是验证过程的一部分。解决方案是使用反射,在您的示例中,代码如下所示:
public function isTypedInitialized(): bool
{
return (new ReflectionClass(self::class))
->getProperty('typed')
->isInitialized($this);
}
但我不认为这种检查应该是同一个班级的一部分
推荐阅读
- ruby-on-rails - 如果电子邮件与其他型号的电子邮件不同,如何验证电子邮件
- couchbase - 在 Couchbase 中更新 Production 视图时会发生什么?
- r - 在 ggplotly 散点图上添加辅助 x 和 y 轴
- java - 为什么不同的字符串与模式匹配?
- mongodb - 选定查询的猫鼬 $substr 部分
- node.js - npm 删除无关包
- android - 无法单击微调器上文本旁边的空白部分
- .net - 使用一次登录进行多个应用程序身份验证
- python-2.7 - 如何从其他字典创建字典?
- excel - VBA,Excel。执行偏移和调整范围大小然后复制它的代码。“编译错误:无效的监视表达式”