将数组作为PHP中函数的参数传递

时间:2017-08-23 20:54:10

标签: php arrays function parameters associative-array

这是我的数组

const frequency = s => s[0].match(/\w+/g).reduce((m, e) => ((m[e]=(m[e]||0)+1),m), {});

console.log(frequency`
Hello foo bar world!
Hello zoo bar world!
Hello foo car world!
Hello foo bar forld!
`);

想要将整个数组作为函数&的参数传递想要使用函数

来总结标记(数组值)
$sub  = array("English"=>"12","Hindi"=>"12","History"=>"12","Geography"=>"12","Mathematics"=>"12","Physics"=>"12","Chemistry"=>"12","Biology"=>"12");

我不知道这是否是将数组传递给函数的正确语法,帮助!!

4 个答案:

答案 0 :(得分:3)

这是你要找的吗?

$mySum = array_sum($sub);

答案 1 :(得分:1)

是的,它是将数组作为参数传递给函数的合适语法。

但是,您可以考虑为$sub参数添加类型声明:

function sum_marks(array $sub)
{
    return array_sum($sub);
}
  

类型声明允许函数在调用时要求参数具有某种类型。如果给定值的类型不正确,则会生成错误:在PHP 5中,这将是可恢复的致命错误,而PHP 7将抛出TypeError异常。

但是,您可能只是想直接使用array_sum()

供参考,见:

答案 2 :(得分:0)

试试这个。它将创建一个具有对数组的引用的函数。当你更改数组时,你可以调用函数的乘积,它将重新计算总和。

render() {
 const a = this.props.testFunc ? this.props.testFunc() : null;
 console.log("Shared:", a);
 ...
}

编辑:我就是这样做的。

testFunc() {
    const a = "asd";
    console.log("Parent:", a);
    return a;
}

render() {
    return (<Shared testFunc={this.testFunc} />);
}

编辑:正确使用PHP匿名函数

答案 3 :(得分:-1)

我不明白你的问题,请询问具体问题。 。 但也许这就是你想要的:

function sum_marks($sub){
$result = array_sum($sub);
retrun $result; 
}