为什么我收到此错误消息“警告:array_push()期望参数1为数组,null给定...”当我删除该函数并运行for循环时,它可以工作,但不在函数内部。为什么呢?
<?php
$arr = array();
function callme() {
for ($x = 1; $x <= 10; $x++) {
array_push($arr, $x);
}
return $arr;
}
callme();
print_r($arr);
?>
答案 0 :(得分:1)
将数组$arr
声明为全局
$arr = array();
function callme() {
global $arr;
for ($x = 1; $x <= 10; $x++) {
array_push($arr, $x);
}
return $arr;
}
或者将$arr
作为参数传递。
答案 1 :(得分:1)
你需要做以下两件事之一:
将$ array添加为函数参数并返回。
<?php
$arr = array();
function callme($array) {
for ($x = 1; $x <= 10; $x++) {
array_push($array, $x);
}
return $array;
}
$arr = callme($arr);
print_r($arr);
?>
如果您不喜欢退货,可以将数组作为参考......
<?php
$arr = array();
function callme(&$array) {
for ($x = 1; $x <= 10; $x++) {
array_push($array, $x);
};
}
callme($arr);
print_r($arr);
?>
或在函数中定义$ arr als全局(最不需要,你只能使用一个数组)
<?php
$arr = array();
function callme() {
global $arr;
for ($x = 1; $x <= 10; $x++) {
array_push($arr, $x);
}
return $arr;
}
callme();
print_r($arr);
?>
答案 2 :(得分:0)
有人需要学习一些关于变量范围的基础知识。