gpt4 book ai didi

php - PHP @ 是否可以安全地检查数组值?

转载 作者:搜寻专家 更新时间:2023-10-31 21:03:47 25 4
gpt4 key购买 nike

我正在处理具有许多可选字段的数组或对象。我试图在不出现 PHP 错误的情况下检查字段值,这导致我:

$name = isset($revision['data']['name']) ? $revision['data']['name']: null;

或者(使用 Laravel)

$name = isset($revision->data->name) ? $revision->data->name: null;
$name = isset($revision->data->name) ? $revision->data->name : 'default';

在这种特定情况下使用是否安全:

$value = @ $revision['data']['name'];
$value = @ $revision['data']['name'] ?: 'default';

如果不是,那么处理这些值的更好方法是什么?

谢谢!

最佳答案

从某种意义上说,它是安全的,因为它可以防止报告错误,但我不会说这是好的做法。当您在 @ 上看到 isset 时,它更明确,主要是因为代码预先告诉我它正在检查是否设置了数组索引。

另一种选择是使用 Laravel 的 array_get 如果您不介意引入它们的辅助函数。在这种情况下,您将拥有:$name = (array_get($revision, 'data.name')) ?: null; 因为 Laravel 的助手会为未设置的索引自动返回 null。您还可以手动设置默认值 array_get($array, 'foo.bar', 'default');

关于php - PHP @ 是否可以安全地检查数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36139036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com