1. PHP函数返回多个值的需求
在开发过程中,有时只有一个返回值可能无法满足需求,需要函数返回多个值。这时,可使用数组来解决这个问题,也可以使用PHP在函数定义时使用声明语法来实现。
2. 数组方式返回多个值
PHP数组是一种能够包含多个值的数据类型。如果我们需要多个值同时返回,可以使用PHP数组的方式处理。下面通过一个例子进行说明:
function get_user_info() {
$user_info = array(
'name' => 'tom',
'age' => 18,
'gender' => 'male',
);
return $user_info;
}
// 调用
$info = get_user_info();
echo $info['name']; // 输出:tom
上面例子中,使用数组保存将多个信息保存在一个数组中,通过 return 返回整个数组,使用数组下标获取其中的某个值。
3. PHP7以上版本支持返回类型声明
PHP7以上版本提供了一种新的语法:返回类型声明(Return Type Declarations),可以在函数声明时限定函数返回的类型。借助这个特性,我们可以很容易地实现函数返回多个值。下面通过代码演示:
function get_user_info() : array {
$user_info = array(
'name' => 'tom',
'age' => 18,
'gender' => 'male',
);
return $user_info;
}
// 调用
$info = get_user_info();
echo $info['name']; // 输出:tom
在函数定义时,在函数名称后加上一个 colon(:) ,然后加上函数返回类型。在上面的代码中,函数返回类型是一个数组(array),所以我们使用了 : array。
3.1 返回类型声明的其他类型
PHP7的返回类型声明支持返回以下几种类型:
int
float
bool
string
array
callable
self
ClassName
通过上述方式,开发者可以灵活地控制函数的返回结果,避免返回不符合预期的结果。
4. 利用引用来返回多个值
在函数内部定义变量的时候,如果变量前面加上 & 符号,就可以将这个变量设为引用传递。函数内修改变量后,外部可以获取到修改后的值。借助引用传递的方式,我们也可以实现函数返回多个值。下面通过代码例子演示:
function get_user_info(&$name, &$age, &$gender) {
$name = 'tom';
$age = 18;
$gender = 'male';
}
// 调用
$name = '';
$age = 0;
$gender = '';
get_user_info($name, $age, $gender);
echo $name . $age . $gender; // 输出:tom18male
我们将三个参数设为引用传递,通过调用函数修改变量。调用函数时,将变量作为参数传递进去,接下来变量会被修改。
4.1 引用传递的注意点
使用引用传递需要注意以下几点:
函数定义时必须要加 & 符号,而函数调用时不可加。
被引用的变量必须要存在,否则将出现错误。
函数调用时推荐使用变量作为参数。
5. 小结
通过本篇文章的讲解,我们了解到了三种实现函数返回多个值的方法,分别为:
使用数组
利用 PHP7 返回类型声明
利用引用传递
开发者可以根据具体情况选择不同的方式来实现函数返回多个值。