PHP :有什么方法可以检查对象是否为空,如果不是,则在一行中调用其方法之一?
PHP : any way to check if an object is null and if not, call one of its method, in one line?
我正在做一个应用程序(Swift 中的客户端和 PHP 中的服务器)。我想知道 PHP 中是否有任何方法可以像 Swift 中那样做……例如:
myInstanceOrNil?.mymethod()
如果 myInstanceOrNil 不为零,则调用我的方法,或者 return 如果 myInstanceOrNil 为零,则为零。
在我的 php 服务器中,我必须 return 几个可选信息(例如,用户可能关联了 facebook 帐户,也可能没有),
$member = new Member($id);
echo json_encode([
"id" => $member->getId(),
"fbId" => $member->getFbInformationsInstanceOrNull()->getFbId()
])
这里的问题,如果getFbInformationsInstanceOrNull()
returns null,因为用户没有关联的fb账号,会产生错误,因为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
here
我正在做一个应用程序(Swift 中的客户端和 PHP 中的服务器)。我想知道 PHP 中是否有任何方法可以像 Swift 中那样做……例如:
myInstanceOrNil?.mymethod()
如果 myInstanceOrNil 不为零,则调用我的方法,或者 return 如果 myInstanceOrNil 为零,则为零。
在我的 php 服务器中,我必须 return 几个可选信息(例如,用户可能关联了 facebook 帐户,也可能没有),
$member = new Member($id);
echo json_encode([
"id" => $member->getId(),
"fbId" => $member->getFbInformationsInstanceOrNull()->getFbId()
])
这里的问题,如果getFbInformationsInstanceOrNull()
returns null,因为用户没有关联的fb账号,会产生错误,因为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
here