通过函数向数组添加多个值

时间:2017-11-13 15:45:37

标签: php arrays

我正在尝试创建一个接受值的函数,并最终回显它们。

以下是一个例子:

function number_of_files ($name) {
    $name_of_files = array($name);
    var_dump ($name_of_files);
}

我正在使用此功能

number_of_files("file.png");
number_of_files("audio.mp3");

我期待以下输出:

  Array (
    [0] => file.png
    [1] => audio.mp3
)

任何建议为什么不起作用?

1 个答案:

答案 0 :(得分:3)

不。您每次都会覆盖$name_of_files。函数范围中的那个变量。

使用此:

function number_of_files ($name, &$name_of_files) {
    array_push($name_of_files, $name);
}

$name_of_files = number_of_files('file.mpg', $name_of_files);
$name_of_files = number_of_files('audio.mp3', $name_of_files);
var_dump ($name_of_files);

现在您正在使用数组作为参考。

修改

如果您不想覆盖原始数组,可以返回:

function number_of_files ($name, $name_of_files) {
    array_push($name_of_files, $name);
    return $name_of_files;
}

但是请注意,在第二种情况下,我没有在&函数参数之前使用$name_of_files符号。这是参考标记。

您可以在此处阅读:http://php.net/manual/en/language.references.pass.php