2

假设以下函数和调用:

function doSomething( &$someArray ) {
    // Do something to $someArray
}

$names=array("John", "Paul", "George", "Ringo");
doSomething($names);

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

谢谢。

4

2 回答 2

4

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

* 你可以使用调试回溯和大量的自省,但这太疯狂了。调用者范围内的变量名应该绝对不会影响任何事情。

于 2012-04-18T01:27:02.080 回答
2

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

此外,您应该避免在应用程序逻辑中使用变量名。想象一下,有人将您的 $name 重构为其他内容。您可以像这样修改数组:

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

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

于 2012-04-18T01:35:03.580 回答