在PHP开发过程中,把数组相关的处理逻辑封装成独立的方法,通过function返回数组,能够有效提升代码的复用性和可维护性,避免重复编写相同的数组操作逻辑。这种方式在需要多次生成相同结构数组、或者数组内容需要根据不同条件动态变化的场景中非常实用。

基础封装:无参数返回固定数组
最简单的封装场景是方法不需要接收参数,直接返回一个固定的数组结构,适合生成全局通用的配置类数组或者常量数组。
<?php
// 封装一个返回网站基础配置数组的方法
function getSiteConfig() {
$config = [
'site_name' => '示例站点',
'site_url' => 'https://ipipp.com',
'version' => '1.0.0',
'debug' => false
];
return $config;
}
// 调用方法获取数组
$siteConfig = getSiteConfig();
echo $siteConfig['site_name']; // 输出:示例站点
?>
带参数封装:根据输入返回动态数组
当数组的内容需要根据不同的输入条件变化时,可以给function添加参数,在方法内部根据参数处理数组逻辑,最后返回对应的数组。
<?php
// 封装一个根据用户ID返回用户基础信息数组的方法
function getUserInfo($userId) {
// 模拟从数据库查询用户数据
$userData = [
1 => ['name' => '张三', 'age' => 25, 'email' => 'zhangsan@ipipp.com'],
2 => ['name' => '李四', 'age' => 28, 'email' => 'lisi@ipipp.com']
];
// 判断用户ID是否存在,存在则返回对应用户信息,不存在返回空数组
if (isset($userData[$userId])) {
return $userData[$userId];
} else {
return [];
}
}
// 调用方法获取用户ID为1的信息
$user1 = getUserInfo(1);
print_r($user1);
// 输出:Array ( [name] => 张三 [age] => 25 [email] => zhangsan@ipipp.com )
?>
封装数组处理工具方法
除了返回固定或动态的业务数组,还可以封装通用的数组处理工具方法,接收数组作为参数,处理后再返回新的数组,提升数组操作的复用性。
<?php
// 封装一个给数组所有元素添加前缀的方法
function addPrefixToArray(array $inputArray, $prefix) {
$result = [];
foreach ($inputArray as $value) {
$result[] = $prefix . $value;
}
return $result;
}
// 原始数组
$originalArr = ['apple', 'banana', 'orange'];
// 调用方法添加前缀
$newArr = addPrefixToArray($originalArr, 'fruit_');
print_r($newArr);
// 输出:Array ( [0] => fruit_apple [1] => fruit_banana [2] => fruit_orange )
?>
注意事项
- 方法返回的数组如果可能为空,调用方需要做好空数组的判断,避免出现未定义索引的错误。
- 如果方法内部需要修改传入的数组,注意区分值传递和引用传递,默认情况下PHP函数参数是值传递,修改不会影响原数组。
- 封装的方法尽量做到单一职责,一个方法只处理一类数组逻辑,方便后续维护和扩展。
封装function返回数组的核心是明确方法的职责,根据是否需要外部输入决定参数设计,最后通过return语句返回处理完成的数组即可。