Php 函数内部声明了全局数组,但调用时未显示值

Php 函数内部声明了全局数组,但调用时未显示值,php,arrays,global,heredoc,Php,Arrays,Global,Heredoc,我正在构建一个菜单,通过调用数组键加载定价。菜单显示,但我无法获取要在价格部分显示的值 我加载了一个关联数组,希望从函数内部调用它的值。我已经声明了全局范围,并且正在使用herdoc将值添加到表中。我还试图通过封装调用printMenu()函数。只有当代码没有放在函数中时,价格才会显示在菜单中 我不知道这里出了什么问题。救命啊 printMenu(); $plain = array( "small" => "3.50", "medium" =>

我正在构建一个菜单,通过调用数组键加载定价。菜单显示,但我无法获取要在价格部分显示的值

我加载了一个关联数组,希望从函数内部调用它的值。我已经声明了全局范围,并且正在使用herdoc将值添加到表中。我还试图通过封装调用printMenu()函数。只有当代码没有放在函数中时,价格才会显示在菜单中

我不知道这里出了什么问题。救命啊

    printMenu();

    $plain = array(
      "small" => "3.50",
      "medium" => "6.25",
      "large" => "8.00"
    );

    function printMenu() {
      global $plain;
      print <<<HERE
        <table>
          <tr>
           <th>&nbsp;</th>
           <th class = "pSize">Small</th>
           <th class = "pSize">Med</th>
           <th class = "pSize">Large</th>
          </tr>
          <tr>
           <th>Plain</th>
           <td class ="price">$plain[small]</td>
           <td class ="price">$plain[medium]</td>
           <td class ="price">$plain[large]</td>
          </tr>
        </table>
    HERE;
    }
printMenu();
$plain=数组(
“小”=>“3.50”,
“中等”=>“6.25”,
“大”=>“8.00”
);
函数printMenu(){
全球$平原;

print在使用全局变量调用函数之前,必须声明变量:

$plain = array(
  "small" => "3.50",
  "medium" => "6.25",
  "large" => "8.00"
);

printMenu();

也可以考虑将这个变量设置为函数中的参数。

function printMenu($argName) {
   var_dump($argName);
}

$plain = array(
  "small" => "3.50",
  "medium" => "6.25",
  "large" => "8.00"
);

printMenu($plain);

我考虑过,但我有四个数组(即$plain、$素食、$pepperoni、$hawaiian)。我只提供了一个数组,因为解决一个人的问题应该是解决四个人的问题,输入到一个表中。正确吗?谢谢。第一次回复我的一篇帖子。我认为我是stackoverflow的信徒,除了我不能支持你的解决方案。希望能提供一个答案…有一天=/我不知道我是否正确,但是在文档上选中
array\u merge
。你不能对我的答案进行投票,因为你是这里的新人。现在你只能将问题中的答案检查为“已接受”。