首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP :有什么方法可以检查对象是否为null,如果不是,请在一行中调用其方法之一?

PHP :有什么方法可以检查对象是否为null,如果不是,请在一行中调用其方法之一?
EN

Stack Overflow用户
提问于 2019-04-22 12:53:44
回答 1查看 728关注 0票数 0

我正在做一个应用程序( Swift中的客户端和PHP中的服务器)。我想知道在PHP中是否有任何方法可以像Swift那样:

代码语言:javascript
代码运行次数:0
运行
复制
myInstanceOrNil?.mymethod()

如果myInstanceOrNil不是零,则调用我的方法;如果myInstanceOrNil为零,则返回零。

在我的php服务器中,我必须返回几个可选信息(例如,用户可能有一个与facebook帐户相关联的,也许不是),

代码语言:javascript
代码运行次数:0
运行
复制
$member = new Member($id);   

echo json_encode([ 
    "id" => $member->getId(), 
    "fbId" => $member->getFbInformationsInstanceOrNull()->getFbId()
])

这里的问题是,如果getFbInformationsInstanceOrNull()由于用户没有关联的fb帐户而返回null,它将产生一个错误,因为null->getFbId()不存在。在斯威夫特,我只需要做:

代码语言:javascript
代码运行次数:0
运行
复制
$member.getFbInformationsInstanceOrNull?().getFbId()

如何在PHP中轻松地完成这个任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-22 12:56:53

为此你需要empty

代码语言:javascript
代码运行次数:0
运行
复制
$fbId = $member->getFbInformationsInstanceOrNull();
if(!empty($fbId)){
echo json_encode([ 
    "id" => $member->getId(), 
    "fbId" =>  $fbId->getFbId()]);
}

如果没有id关联,代码将不会执行,您可能需要向用户显示一些消息或相应地更新业务。

如果您也想传递null,您可以这样做:

代码语言:javascript
代码运行次数:0
运行
复制
$fbId = $member->getFbInformationsInstanceOrNull();
echo json_encode([ 
        "id" => $member->getId(), 
        "fbId" =>  empty($fbId)?null:$fbId->getId() ]);
}

以下值被认为是空的:

  • "“(空字符串)
  • 0 (0作为整数)
  • 0.0 (0作为浮点数)
  • "0“(0作为字符串)
  • 错误
  • 数组()(空数组)

阅读更多关于empty 这里的信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55794753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档