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');
我正在从非官方 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');