php – 如何改进var_dump以显示变量名称并将变量值放入?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何改进var_dump以显示变量名称并将变量值放入?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2816字,纯文字阅读大概需要5分钟。
内容图文
![php – 如何改进var_dump以显示变量名称并将变量值放入?](/upload/InfoBanner/zyjiaocheng/732/5559c209812040dfba6a8628ee84efcd.jpg)
我在我的脚本中多次使用var_dump()函数来检查变量的实际值和类型.很长一段时间,它应该使函数vardump()女巫定义如下:
function vardump($_var){
echo '<pre>';
var_dump($_var);
echo '</pre>';
}
但今天我一直在使用它这么多次和地方,我很困惑,我正在检查的变量.
那么问题是如何确定我正在检查的值的名称?
解决方法:
在所有早上搜索之后我找到了这个解决方案:
/**
* Functions that will display name of the variable, and it's value, and type
*
* @param type $_var - variable to check
* @param type $aDefinedVars - Always define it this way: get_defined_vars()
* @return type
*/
function vardump(&$_var, &$aDefinedVars = null){
if($aDefinedVars){
foreach ($aDefinedVars as $k=>$v)
$aDefinedVars_0[$k] = $v;
$iVarSave = $_var; // now I copy the $_var value to ano
$_var = md5(time());
$aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
$_var = $iVarSave;
$name = $aDiffKeys[0];
}else{
$name = 'variable';
}
echo '<pre>';
echo $name . ': ';
var_dump($_var);
echo '</pre>';
}
获取变量名称您必须确保使用如下所示的vardump():
vardump($variable_name, get_defined_vars());
get_defined_vars()此函数返回一个多维数组,其中包含所有已定义变量的列表,无论是环境,服务器还是用户定义的变量,都在调用get_defined_vars()的范围内.
我将对代码进行更多解释,其中使用了一些奇特的函数.
/**
* Functions that will display name of the variable, and it's value, and type
*
* @param type $_var - variable to check
* @param type $aDefinedVars - Always define it this way: get_defined_vars()
* @return type
*/
function vardump(&$_var, &$aDefinedVars = null){
// $aDefinedVars - is array of all defined variables - thanks to get_defined_vars() function
if($aDefinedVars){
// loop below is used to make a copy of the table of all defined variables
foreach ($aDefinedVars as $k=>$v)
$aDefinedVars_0[$k] = $v; // this is done like that to remove all references to the variables
$iVarSave = $_var; // now I copy the $_var value to another variable to prevent loosing it
$_var = md5(time()); // completly random value
// and the most tricky line
$aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
Becouse我更改了$_var值数组$aDefinedVars_0和$aDefinedVars是相同的,只有$_var值(注意$aDefinedVars_0不使用对变量的引用所以chengin $_var我没有影响$aDefinedVars_0).
现在,array_diff_assoc函数将$aDefinedVars_0(带有原始值)与$aDefinedVars(带有更改的$_var值)进行比较,并返回与关联数组(仅包含一个位置$_var name和$_var值的数组)的差异.
array_keys函数从输入数组返回键,数字和字符串(输入数组只包含一个我正在寻找的位置).
$_var = $iVarSave; // now I can restore old $_var value
$name = $aDiffKeys[0]; // name of the $_var is on the first (and the only position) in the $aDiffKeys array
}else{ // is someone won't use get_defined_vars()
$name = 'variable';
}
echo '<pre>';
echo $name . ': ';
var_dump($_var); // it can be changed by print_r($_var);
echo '</pre>';
}
PS.对不起我的英语.
内容总结
以上是互联网集市为您收集整理的php – 如何改进var_dump以显示变量名称并将变量值放入?全部内容,希望文章能够帮你解决php – 如何改进var_dump以显示变量名称并将变量值放入?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。