我正在尝试使用变量变量,如下所示:
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()提供的参数无效;
任何人都知道如何在这个实例中使用变量变量?
该函数无权访问该数组.
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全局变形"糟糕"的问题.