我目前有一个php函数,其中第一个参数是对数组的引用,第二个参数是它的键之一,
function fun(&$a, $k) {
......
}
我想修改函数,这样我只需要传递一个参数$a[$k]
。在函数内部,可以从$a[$k]
中提取$a
,然后我可以调用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);
}
简短回答:不,没有办法"提取"该信息,因为该信息不在您的函数范围内。
长答案:
正如人们在评论中指出的那样,你根本无法做到这一点。如果你有这样的功能:
function fun(&$foo) {
...
}
没有关于CCD_ 6来自哪里的信息传递给该函数。它可以是一个独立变量、一个数组元素($bar[1]
)、一个对象属性($baz->bingo
)或其他任何东西(想想SomeClass::$bar->baz[$bingo->boingo]
)。没有办法告诉你。
要验证这一点,请在函数中尝试var_dump($ak);
;它不会包含任何关于它所在的数组或对象(或其数组索引或属性名称)的信息。它和其他任何变量一样。