我正在做一个应用程序(Swift 中的客户端和 PHP 中的服务器(。我想知道 PHP 中是否有任何方法可以像在 Swift sth 中一样做,例如:
myInstanceOrNil?.mymethod()
如果 myInstanceOrNil 不是 nil,则调用我的方法,如果 myInstanceOrNil 为 nil,则返回 nil。
在我的php服务器中,我必须返回几个可选信息(例如,用户可能有一个关联的Facebook帐户,也许没有(,
$member = new Member($id);
echo json_encode([
"id" => $member->getId(),
"fbId" => $member->getFbInformationsInstanceOrNull()->getFbId()
])
这里的问题是,如果getFbInformationsInstanceOrNull()
因为用户没有关联的 fb 帐户而返回 null,它将产生错误,因为null->getFbId()
不存在。在 Swift 中,我只需要做:
$member.getFbInformationsInstanceOrNull?().getFbId()
如何在PHP中轻松做到这一点?
你需要empty
$fbId = $member->getFbInformationsInstanceOrNull();
if(!empty($fbId)){
echo json_encode([
"id" => $member->getId(),
"fbId" => $fbId->getFbId()]);
}
如果没有 ID 关联,则代码不会执行,您可能需要向用户显示一些消息或相应地更新业务。
如果你也想通过null
,你可以这样做:
$fbId = $member->getFbInformationsInstanceOrNull();
echo json_encode([
"id" => $member->getId(),
"fbId" => empty($fbId)?null:$fbId->getId() ]);
}
以下值被视为空:
- "(空字符串( 0
- (0 作为整数(
- 0.0(0 作为浮点数(
- "0"(0 作为字符串(
- 零
- 假
- array(( (一个空数组(
在此处阅读有关empty
的更多信息