我正在尝试将分母变量传递给函数convert。当我这样做时,返回的数组“$ new_arr”为每个值产生“0”。
我尝试用函数中的数字替换变量$ denominator,新数组返回适当的数字。
我对PHP的经验是新手所以我的问题是:
1)这是一个范围问题吗?我认为通过在函数之外声明这些变量,它们本质上是全局的。
2)我是否还需要传递'$ denominator'作为参数?
提前致谢。这是代码。
$highest_val = max($array_1);
$lowest_val = min($array_2);
$denominator = $highest_val - $lowest_val;
function convert($arr)
{
$new_arr=array();
for($i=0, $count = count($arr); $i<$count; $i++)
{
$numerator = $arr[$i]-$lowest_val;
$calc = $numerator/$denominator;
$new_arr[] .= $calc;
}
$arr = $new_arr;
return $arr;
}
$test_arr = convert($open_array);
var_dump($test_arr);
答案 0 :(得分:2)
要在函数中使用全局变量,您还需要在其中定义它们global
。喜欢这个
$highest_val = max($array_1);
$lowest_val = min($array_2);
$denominator = $highest_val - $lowest_val;
function convert($arr)
{
global $highest_val;
global $lowest_val ;
global $denominator;
或者您可以将这三个值作为参数发送到您的函数中。如果遵循全局范围路径
,也可以使用$ GLOBALS数组答案 1 :(得分:0)
是的,您需要将值作为参数传入函数。
function convert($arr, $highest_val, $lowest_val, $denominator) { ... }
$test_arr = convert($open_array, $highest_val, $lowest_val, $denominator);
var_dump($test_arr);