php 函數在返回數組類型的數據時可能會遇到以下情況:明確聲明返回數組類型,則直接返回數組;返回 null 值會引發錯誤;調用接收數組的函數可返回另一個數組。
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); }
登錄后復制
這個函數返回一個包含目錄中文件名的數組。它會處理無效目錄、掃描目錄失敗以及去除當前目錄和父目錄的引用。