php - PHP函数中未定义的变量?
问题描述
我创建了一个名为 multiply() 的函数,它接受一个数字数组,将每个值乘以一个数字并返回该数组:
<?php
function multiply($arr, $factor)
{
$newArr = array_map(function ($number) {
return $number * $factor; // line 5
}, $arr);
return $newArr;
}
$array = [2,4,6];
$factor = 2;
$result = multiply($array, $factor);
print_r($result);
?>
输出:
Undefined variable: factor .... on line 5
我不明白为什么$factor
在我的情况下未定义?
解决方案
array_map 中使用的函数具有不同的作用域,它不能看到它之外的变量。您需要使用use
关键字并将 $factor 作为附加参数传递,以便它可用:
$newArr = array_map(function ($number) use ($factor) {
return $number * $factor;
}, $arr);
推荐阅读
- html - CSS中的中心输入框
- c# - 在 C# 中的 CMD 中确定命令是否已完成执行
- angular - catchError 运算符在角度拦截器中显示问题
- javascript - 滚动页面时如何移动 HTML 元素?
- react-native - React Native setState 不重新渲染
- python - 在 Python 中使用 MatPlotlib 绘制数据时无法理解代码
- flutter - 如何比较当前时间与颤动中的关闭和打开时间?
- css - 如何垂直偏移浮动图像?
- shopify - 如何在 shopify 中启用登录和注册页面
- xcode - 在核心数据 NSFetchRequest 中,得到 NSInvalidArgumentException,无法识别的选择器发送到实例