如何创建具有多个返回值的 PHP 函数
PHP 函数是一个可重复使用的语句块,它使我们可以返回简单的字符串,数组或 JSON 对象。但是不可能有一个以上的返回值。尽管可以使用数组,但是可以创建条件语句以返回动态变量或使用生成器*(对于 PHP 5.5 及更高版本)*。
PHP array
返回多个值
funtion arrayFunc(){
$var1 = "return 1";
$var2 = "return 2";
return array($var1, $var2);
}
在应用中:
$result = arrayFunc();
var_dump($result);
//output: array(2) { [0]=> string(8) "return 1" [1]=> string(8) "return 2" }
上面的函数可以具有数组形式的多个返回值,可以使用以下命令进行访问:
$result = arrayFunc();
echo $result[0]; // return 1
echo $result[1]; // return 2
从 PHP 7.1 开始,列表有了一个名为 destructuring
的新函数。这意味着可以执行以下操作:
$array = ['dog', 'cat', 'horse', 'fish'];
[$q, $w, $e, $r] = $array;
echo $q; // output: dog
echo $w; // output: cat
在函数中应用如下所示:
function descructingFunction(){
return ['A', 'sample', 'descructing', 'function'];
}
[$a, $b, $c, $d] = descructingFunction();
echo $a; //output: A
echo $d; // output: function
带条件动态返回的 PHP 函数
function condFunc($x = true){
$ret1 = "One";
$ret2 = "Two";
if($x == true){
return $ret1;
}else{
return $ret2;
}
}
在应用中:
echo condFunc(true);
//output: One
通过采用这种方法,它不需要返回多个值。因此,函数将处理条件以过滤所需的正确值。
PHP 数组与条件动态返回值的结合
稍微修改函数可以选择返回数组或动态返回值。
例:
function combination($x = true){
$ret1 = "One";
$ret2 = "Two";
if($x === true){
return $ret2;
}
if($x == "both"){
return array($ret1, $ret2);
}
}
echo combination(); //output: Two
var_dump(combination("both")) //output: array(2) { [0]=> string(8) "return 1" [1]=> string(8) "return 2" }
使用这种方法将使函数更加灵活。
PHP generator
到 yield
多个值
生成器函数没有返回值,而是根据需要的值而 yield
。它返回一个可以迭代的对象。
例:
function multipleValues(){
yield "return 1";
yield "return 2";
}
$return = multipleValues();
foreach($return as $ret){
echo $ret; //$ret first value is "return 1" then "return 2"
}
注意
:生成器的关键字是 yield。它就像函数语句中的 return 一样,但是它并不停止执行并返回,而是为代码循环提供了值。
注意
:当使用 yield 作为表达式时,必须用括号括起来。
例:
$generator = (yield $test);
相关文章
如何从 Pandas 的日期时间列中提取月份和年份
发布时间:2024/04/23 浏览次数:160 分类:Python
-
我们可以分别使用 dt.year()和 dt.month()方法从 Datetime 列中提取出年和蛾。我们还可以使用 pandas.DatetimeIndex.month 以及 pandas.DatetimeIndex.year 和 strftime()方法提取年份和月份。
如何检查 NaN 是否存在于 Pandas DataFrame 中
发布时间:2024/04/23 浏览次数:208 分类:Python
-
我们可以使用 isnull()和 isna()方法检查 Pandas DataFrame 中是否存在 NaN。
如何在 Pandas DataFrame 的列中将所有 NaN 值替换为零
发布时间:2024/04/23 浏览次数:198 分类:Python
-
在 Pandas 库中使用 df.fillna(),df.replace()方法在 DataFrame 中将 NaN 值替换为零
如何在 Pandas 中更改列的数据类型
发布时间:2024/04/23 浏览次数:183 分类:Python
-
本教程介绍了如何通过使用 to_numaric,as_type 和 infer 对象来更改 Pandas 中列的数据类型。
如何对 Pandas 中的 DataFrame 行随机排序
发布时间:2024/04/23 浏览次数:128 分类:Python
-
我们可以使用 sample(),shuffle()和 permutation()方法随机地对 Pandas 中的 DataFrame 行进行随机排序。
如何获取 Pandas DataFrame 的行数
发布时间:2024/04/23 浏览次数:71 分类:Python
-
本教程介绍如何通过使用 shape,len()来获取 Pandas DataFrame 的行数,以及有多少行元素满足条件。
Pandas DataFrame 基于其他列创建新列
发布时间:2024/04/23 浏览次数:105 分类:Python
-
在本教程中,我们将介绍如何在 Pandas DataFrame 中根据 DataFrame 中其他列的值,通过对列的每个元素应用一个函数或使用 DataFrame.apply()方法来创建新的列。
如何基于 Pandas 中的给定条件创建 DataFrame 列
发布时间:2024/04/22 浏览次数:155 分类:Python
-
我们可以使用列表推导技术,numpy 方法,apply()方法和 map()方法对 Pandas 中的给定条件创建 DataFrame 列。