Php 引用数值数组中的键

Php 引用数值数组中的键,php,arrays,reference,Php,Arrays,Reference,我试图使用变量引用数组中的特定键,如下所示: $var =& $array[0]; 示例阵列: $array = array('a', 'b'); 我所希望的功能是,在更改$array[0]之前,$var将是一个函数。然而,这似乎不起作用 echo $var; // echoes a array_shift($array); echo $var; // still echoes a, not b 是否可以引用特定的键?试试这个 $array = array('a', 'b'); $

我试图使用变量引用数组中的特定键,如下所示:

$var =& $array[0];
示例阵列:

$array = array('a', 'b');
我所希望的功能是,在更改$array[0]之前,$var将是一个函数。然而,这似乎不起作用

echo $var; // echoes a
array_shift($array);
echo $var; // still echoes a, not b
是否可以引用特定的键?

试试这个

$array = array('a', 'b');
$var = &$array;

echo $var[0]; // echoes a
array_shift($array);
echo  $var[0]; // echoes b

不知道你在问什么<代码>=&是一个别名
$var
成为设置别名时,
$array[0]
指向的别名,因此是的,
$var
显然会一直说“a”。这就是它所指的。我听到你要求的是一种特殊的语法,它总是引用特定数组变量的特定索引。正确吗?=&是别名,也称为引用。我的理解是,它们可以引用变量而不是存储值,因为它们不是副本。所以我希望$var即使在修改0键后也能返回$array[0]所返回的任何内容。它们引用内存中的一个位置。数组有一个超出内存地址的间接层。。。他们有一个光标。仅仅更改光标并不会更改存储“a”的位置的内存内容。为什么?您已经有了对数组元素的标准引用。是。。钥匙仅使用
$array[$key]
引用所需的
$key
。就这样。尝试重新定义标准机制毫无意义谢谢你证明了这一点。我想知道是否可以像这样引用$array[0]而不是整个数组。如果您对这个答案感到满意,那么接受答案它不会回答手边的问题,而是引用特定的键。它正在引用数组。不理解这里的否决票。也许可以解释为什么你的有效而他的无效。