PHP :检查对象是否为空的任何方法,如果不是,则在一行中调用其方法之一



我正在做一个应用程序(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的更多信息

相关内容

  • 没有找到相关文章

最新更新