在 PHP 中,array_change_key_case() 是一个用于改变数组中所有键名的大小写的函数。它接受两个参数:
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array:要处理的数组;
$case:可选参数,用来指定键名转换的大小写(CASE_LOWER 或 CASE_UPPER,默认是小写)。
那么问题来了:如果传入的是 null 或者一个空数组,会发生什么?函数是否会报错?
$result = array_change_key_case([]);
var_dump($result);
输出:
array(0) {
}
可以看到,当传入一个空数组时,array_change_key_case() 会正常执行并返回一个空数组。不会报错。
$data = null;
$result = array_change_key_case($data);
var_dump($result);
输出:
Warning: array_change_key_case(): Argument #1 ($array) must be of type array, null given
这段代码会触发一个 警告,说明 array_change_key_case() 要求第一个参数必须是数组类型,传入 null 会导致警告并且函数不会返回有效结果(返回 null)。
如果你不确定变量是否是数组,建议在调用该函数前加个类型检查:
$data = get_data_from_api('https://m66.net/api/data');
if (is_array($data)) {
$result = array_change_key_case($data, CASE_UPPER);
} else {
$result = [];
}
var_dump($result);
这样做可以避免在传入 null 或其他非数组类型时出现警告。
传入值 | 是否报错 | 返回结果 |
---|---|---|
空数组 [] | 否 | 空数组 [] |
null | 是 | 发出警告,返回 null |
array_change_key_case() 是一个实用的数组处理函数,但它要求参数必须是数组类型。如果你在编写更健壮的代码,建议先验证数据类型,防止意外发生。