PHP:有没有办法检查一个对象是否为null,如果不是,在一行中调用它的一个方法?
我正在做一个应用程序(Swift中的客户端和PHP中的服务器)。我想知道在PHP中是否有任何方法可以像在Swift中那样:PHP:有没有办法检查一个对象是否为null,如果不是,在一行中调用它的一个方法?,php,swift,null,optional,Php,Swift,Null,Optional,我正在做一个应用程序(Swift中的客户端和PHP中的服务器)。我想知道在PHP中是否有任何方法可以像在Swift中那样: myInstanceOrNil?.mymethod() 如果myInstanceOrNil不是nil,则调用我的方法;如果myInstanceOrNil是nil,则返回nil 在我的php服务器中,我必须返回几个可选信息(例如,用户可能有一个关联的facebook帐户,可能没有) 这里的问题是,如果getFbInformationsInstanceOrNull()因为用户
myInstanceOrNil?.mymethod()
如果myInstanceOrNil不是nil,则调用我的方法;如果myInstanceOrNil是nil,则返回nil
在我的php服务器中,我必须返回几个可选信息(例如,用户可能有一个关联的facebook帐户,可能没有)
这里的问题是,如果getFbInformationsInstanceOrNull()
因为用户没有关联的fb帐户而返回null,那么它将产生一个错误,因为null->getFbId()
不存在。在Swift中,我只需要做:
$member.getFbInformationsInstanceOrNull?().getFbId()
如何在PHP中轻松实现这一点 你需要
空的
$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
您需要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
的信息好的答案总是会有一个关于做了什么以及为什么这样做的解释,不仅是为了OP,而且是为了未来的访客,以便他们可以找到这个问题并阅读你的答案。如果回答得好,也许他们会投票表决。@RiggsFolly true,写完后,我就去编辑了。最好用细节来解释答案。@Danyalsandelo的答案很好,除了问题本身,不管用户是否关联FB帐户,都会有相应的用户ID输出,在您的情况下,如果用户没有关联的FB帐户,则不会有任何输出。@Danyalsandelo不确定:)if(!empty($fbId)){echo json_encode(…
我猜你的想法是错误的。我看到了你的更新。事实上,如果getFbInformationsInstanceOrNull
为空,处理请求或编码将不会有帮助,但我仍然会添加它。让我们等待op澄清它。好的答案总是会解释做了什么以及为什么这样做,而不是仅针对OP,但面向未来的访问者,以便他们能够找到此问题并阅读您的答案。如果答案正确,他们可能会投票表决。@RiggsFolly true,写完后,我立即去编辑它。总是最好详细解释答案。@DanyalSandeelo的答案很好,除了重点之外,问题本身没有任何问题r如果用户有关联的FB帐户或没有关联的FB帐户,则会有相应的用户ID输出,在您的情况下,如果用户没有关联的FB帐户,则不会有任何输出。@Danyalsandelo不确定:)if(!empty($fbId)){echo json\u encode(…
我猜你的想法是错误的。我看到了你的更新。事实上,如果getFbInformationsInstanceOrNull
为空,处理请求或编码将没有帮助,但我仍然会添加它。让我们等待op澄清它