是否可以从其元素的引用中获取对数组的引用?

时间:2014-11-12 00:15:35

标签: php arrays

我目前有一个php函数,其中第一个参数是对数组的引用,第二个参数是其中一个键,

function fun(&$a, $k) {
......
}

我想修改函数,以便我只需要传递一个参数$a[$k]。在函数内部,$a可以从$a[$k]中提取,然后我可以调用array_search($a[$k], $a)来获取$k。这可能在PHP吗?

function fun(&$ak) {
// $ak is from $a[$k] 
// a php utility to extract $a from $ak? ...
$k = array_search($ak, $a);
}

1 个答案:

答案 0 :(得分:0)

简答:不,没有办法“提取”该信息,因为该信息不存在于您的功能范围内。

答案很长:

正如人们在评论中指出的那样,你根本做不到这一点。如果你有这样的功能:

function fun(&$foo) {
    ...
}

没有传递给该函数的关于$foo来自何处的信息。它可以是独立变量,数组元素($bar[1]),对象属性($baz->bingo)或其他任何东西(想象SomeClass::$bar->baz[$bingo->boingo])。没有办法说出来。

要验证这一点,请在您的函数中尝试var_dump($ak);;它不会包含有关它所在的数组或对象(或其数组索引或属性名称)的任何信息。它就像任何其他变量一样。