我正在做一个应用程序(Swift中的客户端和PHP中的服务器)。我想知道在PHP中是否有任何方法可以像Swift一样:
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中轻松实现?
答案 0 :(得分:1)
您需要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() ]);
}
以下值被认为是空的:
详细了解empty
here