2016-12-27 41 views
0
$myAry = array(); 

// I want to return the array's name. 

// something like 
echo $myAry.name; 

// Should print "$myAry". 

感谢,如何返回数组的“名称”作为字符串

+0

老兄先学习php的基本知识或看看一些教程 – Beginner

+0

当一个人甚至不知道这个人在做什么时,这是一个傲慢的评论! – SpaceCorp

+0

这篇文章解决了我的问题: http://stackoverflow.com/questions/255312/how-to-get-a-variable-name-as-a-string-in-php – SpaceCorp

回答

0

但如果你键入$myAry你已经知道的变量的名称。你试图实现什么 ?

如果你绝对必须知道你的变量的身份......

function my_function ($my_array) { 
    $caller_info = array_shift(debug_backtrace()); 
    $lines = file($caller_info['file']); 
    $line = $lines[$caller_info['line'] - 1]; 
    if(preg_match('/my_function\\s*\\(\$(\\w+)/', $line, $matches)) { 
     $name_of_my_array = $matches[1]; 
     echo $name_of_my_array; 
    } 

} 

这是你想要的吗?

+0

谢谢,这很接近,但它每次只返回my_function的arg名称(例如$ my_array),无论传递哪个数组,而不是arg指向的是什么。 例如:如果我像这样使用它 my_function($ new_name) 它应该每次都返回一个字符串“$ new_name”而不是“$ my_array”。 – SpaceCorp

0

你可以得到参数名这样的:

function get_function ($my_array) { 
    $f = new ReflectionFunction($my_array); 
    $result = array(); 
    foreach ($f->getParameters() as $param) { 
     $result[] = $param->name; 
    } 
    return $result; 

} 

function sayHello($helloWorlds){ 
    echo $helloWorld; 
} 

print_r(get_function('sayHello'));; 


//Output 
Array ([0] => helloWorlds) 
+0

不寻找元素。 – SpaceCorp

+0

@SpaceCorpSolutions为您的问题找到解决方案,请检查。 – Query3j

0

$阵列=阵列( 'name12'); $ comma_separated = implode(“,”,$ array);

echo $ comma_separated; // name12

//使用一个空数组当空字符串:

的var_dump(破灭( '你好',阵列())); //字符串(0)“”

+0

不寻找元素。 – SpaceCorp

相关问题