PHP变量变量和数组/函数

Ama*_*nda 1 php variables

我正在尝试使用变量变量,如下所示:

function keyValMyArray($nameofmyarray) {
  foreach(${$nameofmyarray} as $key => $val) {
    print "$key: $val<br>";
  } 
}

$bookPrices = Array('Catcher in the Rye' => '$2', 'Curious George' => '$4.25', 'Dracula' => '$8');

keyValMyArray('bookPrices')
Run Code Online (Sandbox Code Playgroud)

这不起作用.我得到的错误是:为foreach()提供的参数无效;

任何人都知道如何在这个实例中使用变量变量?

Lig*_*ica 5

该函数无权访问该数组.

function keyValMyArray($nameofmyarray) {
  global ${$nameofmyarray};
  foreach(${$nameofmyarray} as $key => $val) {
    print "$key: $val<br>";
  } 
}
Run Code Online (Sandbox Code Playgroud)

要么:

function keyValMyArray($nameofmyarray) {
  foreach($GLOBALS[$nameofmyarray] as $key => $val) {
    print "$key: $val<br>";
  } 
}
Run Code Online (Sandbox Code Playgroud)

但请记住,变量变量通常被认为是"不良形式"(尽管没有那么多基本原理可以解释为什么,除此之外它有点像eval在Javascript中使用有点混乱).

看看这个关于人们是否认为PHP全局变形"糟糕"的问题.