我目前有一个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);
}
答案 0 :(得分:0)
简答:不,没有办法“提取”该信息,因为该信息不存在于您的功能范围内。
答案很长:
正如人们在评论中指出的那样,你根本做不到这一点。如果你有这样的功能:
function fun(&$foo) {
...
}
没有传递给该函数的关于$foo
来自何处的信息。它可以是独立变量,数组元素($bar[1]
),对象属性($baz->bingo
)或其他任何东西(想象SomeClass::$bar->baz[$bingo->boingo]
)。没有办法说出来。
要验证这一点,请在您的函数中尝试var_dump($ak);
;它不会包含有关它所在的数组或对象(或其数组索引或属性名称)的任何信息。它就像任何其他变量一样。