ホームページ > バックエンド開発 > PHPチュートリアル > PHP 関数が配列型データを返すのはどのような状況ですか?

PHP 関数が配列型データを返すのはどのような状況ですか?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2024-04-20 14:42:01
オリジナル
864 人が閲覧しました

PHP 関数は、配列型のデータを返すときに次の状況に遭遇する可能性があります。戻り値の配列型が明示的に宣言されている場合は、配列が直接返されます。配列を受け取る関数を呼び出すとエラーが発生する可能性があります。別の配列。

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

PHP 関数は配列型データを返します

PHP では、関数が配列型データを返すとき、通常は次のような問題が発生します。状況:

1. 明示的な配列型のヒント

関数シグネチャで返されるデータ型が配列であると明示的に宣言されている場合、関数は配列を返します。例:

1

2

3

4

function get_data(): array

{

    return ['name' => 'John', 'age' => 30];

}

ログイン後にコピー

2. null を返す

一部の関数は、必要なデータが見つからない場合などに、null 値を返すことがあります。ただし、関数が配列型を返すように宣言されている場合、null を返すとエラーが発生します。

3. 配列を受け取る関数を呼び出します

PHP にはいくつかの関数 (array_filter()array_map( など) も用意されています。 ) )、引数として配列を受け取り、別の配列を返します。次の例は、array_filter() 関数の使用方法を示しています。

1

2

3

4

5

6

7

8

9

10

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 现在是一个仅包含数字的数组

ログイン後にコピー

実際のケース: ファイル リストを取得する

取得するメソッドを検討します。指定されたディレクトリ内のファイルのリスト 関数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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);

}

ログイン後にコピー

この関数は、ディレクトリ内のファイル名を含む配列を返します。無効なディレクトリ、失敗したディレクトリ スキャン、および現在のディレクトリと親ディレクトリの逆参照を処理します。

以上がPHP 関数が配列型データを返すのはどのような状況ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート