Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何打印变量和数组的名称?_Php_Arrays_Variables - Fatal编程技术网

Php 如何打印变量和数组的名称?

Php 如何打印变量和数组的名称?,php,arrays,variables,Php,Arrays,Variables,可能重复: 我需要类似以下代码的东西: 代码 <?php $var1='my var 1'; $array1['1']='first position of my array 1'; $array1['2']='second position of my array 1'; echo name($var1); echo "<br>"; echo name($array1); function name($parameter){ ...?... } ?> 因

可能重复:

我需要类似以下代码的东西:

代码

<?php

$var1='my var 1';

$array1['1']='first position of my array 1';
$array1['2']='second position of my array 1';

echo name($var1);

echo "<br>";

echo name($array1);

function name($parameter){
...?...
}
?>
因此,我需要编写一个函数,为我传递给它的变量或数组提供名称。我怎样才能做到这一点


我将在另一个函数上使用此函数来执行一些任务…

尝试以下方式修改该函数(未测试)


尝试按以下方式修改函数(未测试)

正如@bfavaretto所说

这对我来说很好:

<?php

$var1='my var 1';

$array1['1']='first position of my array 1';
$array1['2']='second position of my array 1';

echo name($var1);

echo "<br>";

echo name($array1);

function name(&$var, $scope=false, $prefix='unique', $suffix='value'){
    if($scope) $vals = $scope;
    else      $vals = $GLOBALS;
    $old = $var;
    $var = $new = $prefix.rand().$suffix;
    $vname = FALSE;
    foreach($vals as $key => $val) {
      if($val === $new) $vname = $key;
    }
    $var = $old;
    return $vname;
}
?>

正如@bfavaretto所说

这对我来说很好:

<?php

$var1='my var 1';

$array1['1']='first position of my array 1';
$array1['2']='second position of my array 1';

echo name($var1);

echo "<br>";

echo name($array1);

function name(&$var, $scope=false, $prefix='unique', $suffix='value'){
    if($scope) $vals = $scope;
    else      $vals = $GLOBALS;
    $old = $var;
    $var = $new = $prefix.rand().$suffix;
    $vname = FALSE;
    foreach($vals as $key => $val) {
      if($val === $new) $vname = $key;
    }
    $var = $old;
    return $vname;
}
?>


Trevor,这个解决方案对我的问题不起作用。这个链接只适用于变量,不适用于数组。数组崩溃。@GarouDan请提供一个示例,说明您需要
echo name($array1)
,而
echo'array1'
则不行。此链接与其他链接相同,会崩溃到数组。您认为这是不可能的。计算已传递给函数的变量的名称就像计算瓶子标签上的文本,方法是检查瓶子倒入的玻璃杯中的内容。Trevor,这个解决方案不适用于我的问题。此链接仅适用于变量,而不适用于数组。数组崩溃。@GarouDan请提供一个示例,说明您需要
echo name($array1)
,而
echo'array1'
则不行。此链接与其他链接相同,会崩溃到数组。您认为这是不可能的。计算已传递给函数的变量的名称就像计算瓶子标签上的文本一样,方法是检查瓶子倒入的玻璃杯中的内容。请注意,在这种情况下,您正在倾倒两个数组中的内容并比较结果。如果有两个值相同的变量,您可能会返回错误的数组,因此准确性是一个真正的问题,但我认为这与您将要尝试的内容非常接近。请注意,在本例中,您正在转储两个数组的内容并比较结果。这种情况的一大风险是,如果您有两个值相同的变量,则可能返回错误的一个,所以准确度是一个真正的问题,但我认为这是你想要达到的目标。
<?php

$var1='my var 1';

$array1['1']='first position of my array 1';
$array1['2']='second position of my array 1';

echo name($var1);

echo "<br>";

echo name($array1);

function name(&$var, $scope=false, $prefix='unique', $suffix='value'){
    if($scope) $vals = $scope;
    else      $vals = $GLOBALS;
    $old = $var;
    $var = $new = $prefix.rand().$suffix;
    $vname = FALSE;
    foreach($vals as $key => $val) {
      if($val === $new) $vname = $key;
    }
    $var = $old;
    return $vname;
}
?>