PHP:获取调用引用的数组名称


PHP: Get calling referenced array name

假设以下函数和调用:

function doSomething( &$someArray ) {
    // Do something to $someArray
}
$names=array("John", "Paul", "George", "Ringo");
doSomething($names);

有没有办法从函数中获取引用数组的名称(在本例中为"名称")?我知道我可以重构以向函数添加另一个参数作为数组变量的名称,但这只会招致错误。用例是,对于每个数组$someSillyName函数都需要访问数据库表someSillyName。

谢谢。

No.*
如果"names"doSomething完成其工作的必要信息,请将其作为参数传递。

*你可以使用调试回溯和大量的内省,但这太疯狂了。调用方作用域中的变量名称应该对任何事情都没有影响。

在 PHP 中没有办法做到这一点。

此外,应避免对应用程序逻辑使用变量名称。 想象一下,有人将你的$name重构为别的东西。您可以像这样修改数组:

$dbData = array(
    'names' => array("John", "Paul", "George", "Ringo")
);

这也应该对应用程序的其他部分有所帮助。如果你真的想这样做,我建议创建一个类来封装这个数组并提供getDatabaseName();getData();