数组到字符串转换,只有变量应该通过引用传递

use*_*029 2 php

我没有经验的PHP(我是新的).

我正在尝试使用此代码http://mach13.com/how-to-get-a-variable-name-as-a-string-in-php来查找变量的名称,但我一直在:

该行的数组到字符串转换:

$aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
Run Code Online (Sandbox Code Playgroud)

而且当我使用时,我得到"只有变量应该通过引用传递"

var_name($a, get_defined_vars());
Run Code Online (Sandbox Code Playgroud)

如何让这些消息消失?因为整个代码都在工作(我得到了所需的输出).

这是代码

<?php
function var_name (&$iVar, &$aDefinedVars)
{
foreach ($aDefinedVars as $k=>$v)
    $aDefinedVars_0[$k] = $v;

$iVarSave = $iVar;
$iVar     =!$iVar;

$aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
$iVar      = $iVarSave;

return $aDiffKeys[0];
}
$a=12;
echo var_name($a,get_defined_vars());
//ini_set('display_errors', '0');
?>
Run Code Online (Sandbox Code Playgroud)

Scr*_*aws 9

Array to String转换通知在PHP v5.4.0中启动.由于array_diff_assoc()不会递归搜索,它会通知您它发现数组中的某个值也是一个数组,并且必须将其转换为字符串.

这是一个关于如何使用array_diff_assoc()多维数组的例子...... http://nl3.php.net/manual/en/function.array-diff-assoc.php#73972

或者,如果您只是比较密钥array_diff_assoc(),array_diff_key()可能会为您的目的切换?