Php 无法打印阵列';s项在另一个函数中

Php 无法打印阵列';s项在另一个函数中,php,arrays,Php,Arrays,我有这样一个数组: function func1() { $web( 'news' => 'yes', 'items' => ''); // I call `$web['item']` and fill it as array: $web['item'][] = 'item1'; $web['item'][] = 'item2'; $web['item'][] = 'item3'; foreach($web['item'] as $item) echo $item,'-'

我有这样一个数组:

function func1()
{
$web( 'news' => 'yes',
      'items' => '');
// I call `$web['item']` and fill it as array:
$web['item'][] = 'item1';
$web['item'][] = 'item2';
$web['item'][] = 'item3';
foreach($web['item'] as $item) echo $item,'-';
//result: item1 - item 2 - item 3 

func2($web)
}
现在一切听起来都很好…但当我将$web发送到另一个函数时,它只是打印

function  func2($web)
{
  foreach($web['item'] as $item) echo $item,'-';
  //result: item1 - 
}

我怎么了?

您的和数组有问题。要声明新数组,您有一些选项。我个人喜欢最短的路:

$web = [];
把它和更正放在一起

function func1()
{
    $web = [];
    $web['item'][] = 'item1';
    $web['item'][] = 'item2';
    $web['item'][] = 'item3';
    foreach($web['item'] as $item)
    {
        echo $item.'-';
    }

    echo "<br>";
    func2($web);
}

function func2($web)
{
    foreach($web['item'] as $item)
    {
        echo $item.'-';
    }
}
函数func1()
{
$web=[];
$web['item'][]='item1';
$web['item'][]='item2';
$web['item'][]='item3';
foreach($web['item']作为$item)
{
回声$item.'-';
}
回声“
”; 功能2($网络); } 函数func2($web) { foreach($web['item']作为$item) { 回声$item.'-'; } }

我添加了一个
echo“
因此结果将显示在单独的行上。我没有包括对本例不太有用的行,你可以将这些添加进来。

现在你的函数1中没有一个句子,这就有点意义了。我假设这是一个示例代码,因为在创建数组$web时,这会产生语法错误,因为你使用括号而不是括号,而语法错误使用函数2()。但是,如果不是这样的话,这很好…您应该稍微了解一下如何在PHP中声明数组。老实说,其他一切都没问题。你也可以用逗号连接。我知道,令人困惑,但PHP允许这样做。除了此示例代码中的语法错误外,不存在任何问题。