PHP函数使用数组的名称

时间:2017-11-22 19:02:44

标签: php arrays function

我需要运行一个接受数组的函数,然后有效地打印出该数组的内容。很简单,但是我想要包含传递给该函数的数组的名称。

我已经阅读过使用“hack”方法(如debug_backtrace)来查找调用文件和行号,然后解析该行以获取函数名称,这当然是一种选择(尽管是复杂的)。另一种方法是使用字符串调用函数,该字符串是数组的名称,然后在函数内声明一个全局:

function showArray($array){
    global $$array;
    echo $array . ' contains the following:<pre>';
    print_r($$array);
    echo '</pre>';
}

// set up a test array for demo purposes
$testArray = [];
for($i=0; $i<10; $i++){
    $testArray[$i] = md5(uniqid());
}

// call the function with string, not the array itself
showArray('testArray');

这肯定显示了我想要的回应:

testArray contains the following:
Array
(
    [0] => 18c19a1daf7b62e2d064697850dd1bf2
    [1] => 3fc8981f8b4e3a72fc48419389e246ae
    ..
    [8] => 47d28676305ffaef7c7e10e7950f5bb3
    [9] => db20f5b27f9917ebee7ab149df759387
)

但是想知道PHP中是否隐藏了一些我不知道的东西,这使我无法使用这种方法?除非它绝对100%要求(在这种情况下可能是这样),AFAIK使用全局变量是“糟糕”的做法......

0 个答案:

没有答案