我正在尝试创建一个接受值的函数,并最终回显它们。
以下是一个例子:
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
)
任何建议为什么不起作用?
答案 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