PHP - 变量安全输出

PHP - Variable Safe Output

我正在从非官方 API 获取信息。这个 API 非常大,有时没有包含所有元素。我正在尝试在我的网站上正确显示此 API 的值。

我所做的是像这样检查 JSON 值,以防止错误:

echo (isset($json['item'])) ? $json['item'] : '';

有效,但看起来非常杂乱无章。我考虑过创建一个函数来处理安全输出,如下所示:

public function safeoutput($input, $fallback = '') {
    if(isset($input)) {
        return $input;
    }

    if(empty($input) || !isset($input)) {
        return $fallback;
    }
}

然后做:

echo $engine->safeoutput($json['item'], 'Unavailable');

不幸的是,仍然输出未定义变量错误。

我想知道是否有更好的方法来处理我在示例中展示的此类信息。

问题是密钥可能没有设置,所以你必须检查一下:

public function safeoutput($input, $key, $fallback = '') {
    if(isset($input[$key])) {
        return $input;
    }

    if(empty($input[$key]) || !isset($input[$key])) {
        return $fallback;
    }
}

或者你可以有一个更短的版本:

public function safeoutput($input, $key, $fallback = '') {
    if(array_key_exists($key, $input) && !empty($input[$key])){
        return $input[$key];
    }
    return $fallback;
}

并使用数组和键调用方法:

echo $engine->safeoutput($json, 'item', 'Unavailable');