如果参数不存在于php中,则可以选择分配空值

时间:2018-03-26 07:26:40

标签: php json post slim

我从一个服务器网址获得了一些JSON响应,响应参数可能会根据用户凭据进行更改,

例如,有时候它会返回用户状态,有时候客户状态都会有相同的值,但是我需要处理,如果任何状态参数默认不是空的,所以我尝试了下面的逻辑。

$centre_jurisdiction = $data['data']['ctj'] ?? "";
$state_jurisdiction = $data['data']['stj'] ?? "";

上面的逻辑在我的本地主机上工作得很好但是它在我的实时服务器上没有工作然后我找到了原因,它在我的实时服务器上没有工作,因为我的实时服务器PHP版本是5.0并且它在我的localhost中工作,因为我的localhost PHP版本是7.0。

我需要在我的实时服务器上运行此逻辑而不更新我的实时服务器PHP版本,因为一些旧项目也托管在该服务器中,并且这些项目将在PHP 5中得到支持。

有没有办法处理这个逻辑?谢谢!

2 个答案:

答案 0 :(得分:11)

你遇到PHP 5的问题,因为PHP {7}中引入了null coalescing operator

等效于使用条件运算符和isset

classifier

答案 1 :(得分:2)

空合并运算符" ??"只是在PHP 7中添加的语法糖;见Manual。您也可以将其视为" isset ternary"操作;请参阅RFC

所以,好消息是,对于PHP 5,可以按如下方式重写代码:

$centre_jurisdiction = isset($data['data']['ctj'])? $data['data']['ctj'] : "";

$state_jurisdiction = isset($data['data']['stj'])?  $data['data']['stj'] : "";

注意:逻辑是相同的,但语法更短,因此在PHP 7中更加甜蜜.PHP 5代码简单地使一切都清晰。