下面是代码示例:
$test = array(
1 => 'one',
2 => 'two',
3 => 'three'
);
$arrayName = 'test';
error_log(print_r($$arrayName, 1));
error_log($$arrayName[1]);
输出:
Array
(
[1] => one
[2] => two
[3] => three
)
PHP Notice: Undefined variable: e in /Applications/MAMP/htdocs/_base/test.php on line 12
我希望第二行会输出“一个”,但显然它不起作用。似乎括号具有更高的解析优先级,因此 $arrayName 在这里被视为数组。
我首先尝试使用大括号来包装 $$arrayName,但不知何故会导致 PHP Parse 错误。由于最终我将需要使用 unset 来删除选定的元素,因此使用临时变量来存储数组并不理想。想知道是否有任何方法可以在一行内实现这一目标。任何见解表示赞赏!