Hen*_*nry 2 php properties object laravel
我有一个Stripe订阅对象,看起来像这样......
subscription: {
items: {
data: [
plan: {
id: 'my_plan_id'
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
安全检索计划ID的最佳方法是什么?目前我正在做以下事情.
'plan_id' => $subscription->items->data[0]->plan->id,
Run Code Online (Sandbox Code Playgroud)
但是,它看起来像是否会失败items,data[0]或者plan,没有设置.我可以做if if语句if (isset($subscription->items) && isset(data[0]) ...,但我不确定这是最好的方法.
是否有一个PHP方法或Laravel方法可以用来安全地提取那个比那更干净的属性?
如果您使用的是PHP 7+,则可以使用null coalesce运算符:
'plan_id' => $subscription->items->data[0]->plan->id ?? $default,
Run Code Online (Sandbox Code Playgroud)
这将评估值是否可用,否则将使用默认值,而不会生成任何警告或错误.
例:
$foo = new stdClass();
var_dump($foo->bar->baz->data[0]->plan->id ?? null);
Run Code Online (Sandbox Code Playgroud)
输出:
NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
703 次 |
| 最近记录: |