看下面的代码:
$myvar = array();
first();
function first()
{
global $myvar;
$array(apple, banana, orange);
}
second();
function second()
{
global $myvar;
print_r($array);
}
然后在输出中,第二个函数没有显示数组... = /我不知道函数如何从其他函数获取变量数组...
答案 0 :(得分:2)
两件事
$myvar
不会在您的函数中的任何位置使用;
你应该学习如何在声明的数组中添加元素。
function first()
{
global $myvar;
$myvar=array('apple','banana','orange');
}
答案 1 :(得分:1)
您没有在任何地方设置变量$array
。
答案 2 :(得分:1)
$array
不在函数2的范围内。
答案 3 :(得分:1)
不要因为你懒惰而使用全局变量。改为使用返回值和函数参数
function first () { return array('apple','banana', 'orange'); }
function second ($param) { print_r($param); }
$fruit = first();
second($fruit);
答案 4 :(得分:1)
您要求$myvar
行中的变量global $myvar;
,但之后您尝试使用名为$array
的变量。
尝试使用以下行:
$myvar = array('apple','banana','orange');
和
print_r($myvar);
答案 5 :(得分:-1)
我看起来像这样的正确代码:
$myvar = array();
first();
second();
function first(){
global $myvar;
array_push($myvar, 'apple', 'banana', 'orange');
}
function second(){
global $myvar;
print_r($myvar);
}
array_push将新项添加到数组中。
答案 6 :(得分:-4)
尝试使用一个类而不是两个函数和一个全局变量:
class functions {
$myvar = array();
function first(){
$this->myvar = array('apple', 'banana', 'orange');
}
function second(){
print_r($this->myvar);
}
}
$fn = new functions();
$fn->first();
$fn->second();
使用全局变量并不是一个好主意(正如您在问题中所做的那样)。