首页 > 文章列表 > PHP 函数返回数组类型的数据有哪些情况?

PHP 函数返回数组类型的数据有哪些情况?

函数 数组
302 2024-04-23

PHP 函数在返回数组类型的数据时可能会遇到以下情况:明确声明返回数组类型,则直接返回数组;返回 null 值会引发错误;调用接收数组的函数可返回另一个数组。

PHP 函数返回数组类型的数据有哪些情况?

PHP 函数返回数组类型的数据情况

PHP 中,函数在返回数组类型的数据时,通常会遇到以下情况:

1. 明确的数组类型提示

当函数签名明确声明返回的数据类型为数组时,函数将返回一个数组。例如:

function get_data(): array
{
    return ['name' => 'John', 'age' => 30];
}

2. 返回 null

某些函数可能返回 null 值,例如当找不到所需数据时。然而,当函数声明为返回数组类型时,返回 null 会引发错误。

3. 调用接收数组的函数

PHP 中还提供了一些函数(例如 array_filter()array_map()),它们接收数组作为参数并返回另一个数组。以下示例显示如何使用 array_filter() 函数:

function filter_numbers(array $arr)
{
    return array_filter($arr, function($item) {
        return is_numeric($item);
    });
}

$numbers = [1, 2, 'a', 4, 'b'];
$result = filter_numbers($numbers);
// $result 现在是一个仅包含数字的数组

实战案例:获取文件列表

考虑一个获取指定目录中的文件列表的函数:

function get_files(string $dir): array
{
    if (!is_dir($dir)) {
        throw new InvalidArgumentException("$dir is not a valid directory.");
    }

    $files = scandir($dir);
    if ($files === false) {
        throw new RuntimeException("Failed to scan directory.");
    }

    foreach ($files as $key => $file) {
        if ($file == '.' || $file == '..') {
            unset($files[$key]);
        }
    }

    return array_values($files);
}

这个函数返回一个包含目录中文件名的数组。它会处理无效目录、扫描目录失败以及去除当前目录和父目录的引用。