Xdebug中文文档-变量打印特性
文档内容来自xdebug.org/docs
,翻译时xdebug版本为2.6
。我在官方文档基础上针对中文排版和教程内容的编排做了一些优化,希望中文文档看起来更容易理解。
英文原始文档地址:https://xdebug.org/docs/
中文文档github地址:https://github.com/Anoxia/xde...
Xdebug替换了PHP的var_dump()
函数来显示变量。Xdebug的版本包含不同类型的不同颜色,并限制数组元素/对象属性的数量,最大深度和字符串长度。还有一些其他功能处理变量显示。
设置对var_dump的影响
有许多设置可以控制Xdebug修改的var_dump()函数的输出 :xdebug.var_display_max_children,xdebug.var_display_max_data和xdebug.var_display_max_depth。这三个设置的效果最好用一个例子来展示。下面的脚本运行四次,每次都有不同的设置。您可以使用这些标签来查看差异。
代码:
<?php
class test {public $pub = false;private $priv = true;protected $prot = 42;
}
$t = new test;
$t->pub = $t;
$data = array('one' => 'a somewhat long string!','two' => array('two.one' => array('two.one.zero' => 210,'two.one.one' => array('two.one.one.zero' => 3.141592564,'two.one.one.one' => 2.7,),),),'three' => $t,'four' => range(0, 5),
);
var_dump( $data );
?>
输出(默认值):
array'one' => string 'a somewhat long string!' (length=23)'two' => array'two.one' => array'two.one.zero' => int 210'two.one.one' => array...'three' => object(test)[1]public 'pub' => &object(test)[1]private 'priv' => boolean trueprotected 'prot' => int 42'four' => array0 => int 01 => int 12 => int 23 => int 34 => int 45 => int 5
输出(xdebug.var_display_max_children = 2):
array'one' => string 'a somewhat long string!' (length=23)'two' => array'two.one' => array'two.one.zero' => int 210'two.one.one' => array...more elements...
输出(xdebug.var_display_max_data = 16):
array'one' => string 'a somewhat long '... (length=23)'two' => array'two.one' => array'two.one.zero' => int 210'two.one.one' => array...'three' => object(test)[1]public 'pub' => &object(test)[1]private 'priv' => boolean trueprotected 'prot' => int 42'four' => array0 => int 01 => int 12 => int 23 => int 34 => int 45 => int 5
输出(xdebug.var_display_max_depth = 2):
array'one' => string 'a somewhat long string!' (length=23)'two' => array'two.one' => array...'three' => object(test)[1]public 'pub' => &object(test)[1]private 'priv' => boolean trueprotected 'prot' => int 42'four' => array0 => int 01 => int 12 => int 23 => int 34 => int 45 => int 5
输出(xdebug.var_display_max_children = 3,xdebug.var_display_max_data = 8,xdebug.var_display_max_depth = 1):
array'one' => string 'a somewh'... (length=23)'two' => array...'three' => object(test)[1]...more elements...
相关设置
xdebug.cli_color
该功能仅适用于
Xdebug> = 2.2
类型:整数,默认值:0,
如果此设置为1,则在CLI模式下以及输出为tty时,var_dumps和堆栈跟踪Xdebug将着色输出。在Windows上, 需要安装ANSICON工具。
如果设置为2,那么无论是否连接到tty或是否安装ANSICON,Xdebug将始终为var_dumps和堆栈跟踪着色。在这种情况下,您最终可能会看到转义码。
看到这篇文章的一些更多的信息。
xdebug.overload_var_dump
该功能仅适用于
Xdebug> = 2.1
当php.ini
中html_errors设置为1或2时,Xdebug会默认更改var_dump输出。如果您不希望如此,您可以将其值设置为0,但是首先检查是否智能关闭html_errors。
该值设置为2时,除了很好的格式化var_dump()输出外,它还会将文件名和行号添加到输出中。
在Xdebug 2.4之前,这个设置的默认值是 1
。
xdebug.var_display_max_children
类型:整数,默认值:128
当使用xdebug_var_dump(), xdebug.show_local_vars或通过函数轨迹显示变量时,控制数组的数量和子对象的属性。
要禁用任何限制,请使用-1作为值。
此设置对通过远程调试功能发送给客户端的子项数量没有任何影响。
xdebug.var_display_max_data
类型:整数,默认值:512
控制使用xdebug_var_dump(), xdebug.show_local_vars或通过函数轨迹显示变量时显示的最大字符串长度。
要禁用任何限制,请使用-1作为值。
此设置对通过远程调试功能发送给客户端的子项数量没有任何影响。
xdebug.var_display_max_depth
通过xdebug_var_dump(), xdebug.show_local_vars或函数轨迹显示变量时,控制数组元素和对象属性的嵌套级别。
您可以选择的最大值是1023。您也可以使用-1作为值来选择此最大值。
此设置对通过远程调试功能发送给客户端的子项数量没有任何影响。
相关函数
void var_dump( [mixed var [, ...]] )
显示有关变量的详细信息
这个函数被Xdebug重载,参见xdebug_var_dump()的描述 。
void xdebug_debug_zval( [string varname [, ...]] )
显示有关变量的信息
此功能显示有关一个或多个变量的结构化信息,其中包括其类型,值和引用计数信息。数组通过值递归地进行探索。这个函数的实现方式与PHP的debug_zval_dump()函数不同,是用来解决debug_zval_dump()函数存在的问题,因为变量本身实际上被传递给函数。Xdebug的版本更好,因为它使用变量名查找内部符号表中的变量,并直接访问所有属性,而不必处理实际将变量传递给函数。结果是这个函数返回的信息比PHP自己的显示zval信息的函数要准确得多。
自Xdebug 2.3以来, 支持除简单变量名称(如下面的“a [2]”)之外的任何其他内容。
例:
<?php$a = array(1, 2, 3);$b =& $a;$c =& $a[2];xdebug_debug_zval('a');xdebug_debug_zval("a[2]");
?>
输出:
a: (refcount=2, is_ref=1)=array (0 => (refcount=1, is_ref=0)=1, 1 => (refcount=1, is_ref=0)=2, 2 => (refcount=2, is_ref=1)=3)
a[2]: (refcount=2, is_ref=1)=3
void xdebug_debug_zval_stdout( [string varname [, ...]] )
将有关变量的信息返回到stdout。
此功能显示有关一个或多个变量的结构化信息,其中包括其类型,值和引用计数信息。数组通过值递归地进行探索。与xdebug_debug_zval()的不同之处在于信息不是通过Web服务器API层显示的,而是直接显示在标准输出上(所以当你在单进程模式下运行Apache时,它将在控制台上输出)。
例:
<?php$a = array(1, 2, 3);$b =& $a;$c =& $a[2];xdebug_debug_zval_stdout('a');
输出:
a: (refcount=2, is_ref=1)=array (0 => (refcount=1, is_ref=0)=1, 1 => (refcount=1, is_ref=0)=2, 2 => (refcount=2, is_ref=1)=3)
void xdebug_dump_superglobals()
显示有关超级全局的信息
这个函数按照xdebug.dump.*
在php.ini的设置转储超级全局元素的值。对于下面的例子,php.ini中的设置是:
xdebug.dump.GET=*
xdebug.dump.SERVER=REMOTE_ADDRQuery string:
?var=fourty%20two&array[a]=a&array[9]=b
返回:
Dump $_SERVER | |
---|---|
$_SERVER['REMOTE_ADDR'] =
|
string '127.0.0.1' *(length=9)*
|
Dump $_GET | |
---|---|
$_GET['var'] =
|
string 'fourty two' *(length=10)*
|
$_GET['array'] =
|
**array** 'a' => string 'a' *(length=1)* 9 => string 'b' *(length=1)*
|
void xdebug_var_dump( [mixed var [, ...]] )
显示有关变量的详细信息
此功能显示关于一个或多个表达式的结构化信息,包括其类型和值。数组通过值递归地进行探索。请参阅php.ini设置影响此功能的变量显示功能的介绍(上文)。
例:
<?php
ini_set('xdebug.var_display_max_children', 3 );
$c = new stdClass;
$c->foo = 'bar';
$c->file = fopen( '/etc/passwd', 'r' );
var_dump(array(array(TRUE, 2, 3.14, 'foo'),'object' => $c)
);
?>
输出:
array0 => array0 => boolean true1 => int 22 => float 3.14more elements...'object' => object(stdClass)[1]public 'foo' => string 'bar' (length=3)public 'file' => resource(3, stream)
Xdebug中文文档-变量打印特性相关推荐
- Xdebug中文文档-基础特性
文档内容来自xdebug.org/docs,翻译时xdebug版本为2.6.我在官方文档基础上针对中文排版和教程内容的编排做了一些优化,希望中文文档看起来更容易理解. 英文原始文档地址:https:/ ...
- Xdebug中文文档-堆栈跟踪
文档内容来自xdebug.org/docs,翻译时xdebug版本为2.6.我在官方文档基础上针对中文排版和教程内容的编排做了一些优化,希望中文文档看起来更容易理解. 英文原始文档地址:https:/ ...
- Xdebug中文文档-安装
文档内容来自xdebug.org/docs,翻译时xdebug版本为2.6.我在官方文档基础上针对中文排版和教程内容的编排做了一些优化,希望中文文档看起来更容易理解. 英文原始文档地址:https:/ ...
- Beetl2.7.13 中文文档
## Beetl2.7.13 中文文档 ### 1. 什么是Beetl Beetl目前版本是2.7.13,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使 ...
- Bootstrap 一篇就够 快速入门使用(中文文档)
目录 一.Bootstrap 简介 什么是 Bootstrap? 历史 为什么使用 Bootstrap? Bootstrap 包的内容 在线实例 Bootstrap 实例 更多实例 Bootstrap ...
- TinyXML中文文档
译注:本文是TinyXML 2.5.2版本Document的中文文档,经原作者Lee Thomason同意由hansen翻译,如有误译或者错漏,欢迎指正. 版权:版权归原作者所有,翻译文档版权归本人h ...
- IMAP协议RFC3501中文文档 .
IMAP协议RFC3501中文文档 . 分类: 各类协议标准文档 2011-05-18 09:48 1238人阅读 评论(0) 收藏 举报 因特网邮件访问协议,版本4rev1(IMAP4rev1)允许 ...
- Spring Cloud Alibaba 官方中文文档
Spring Cloud Alibaba 官方中文文档 1. 介绍 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用服务的必需组件,方便开发者通 ...
- UglifyJS中文文档
UglifyJS中文文档 译者:李平海 转载请注明原文链接(https://github.com/LiPinghai/... )与作者信息. 译序 由于webpack本身集成了UglifyJS插件(w ...
最新文章
- IAP超级详解,偷懒了,不用自己去翻译了
- 如何停止一个正在运行的线程?
- python支持链式赋值和多重赋值_Python: 链式赋值的坑
- 2.对于所有对象都通用的方法_EJ
- 973分成功通过CCNA。。
- 纯CSS制作各种各样的网页图标(三角形、暂停按钮、下载箭头、加号等)
- Python+django网页设计入门(16):优化设计复用分页代码
- 旷视Face++与西交大成立AI联合实验室,郑南宁孙剑再续师徒缘
- mysql 取出当前第几列_mysql 获取表有多少列
- 10行java代码实现email代码表白感恩节必备~
- 使命、愿景、价值观到底有什么区别
- easyUI-疯狂的秀才
- [VBA学习]关于Formula以及数字格式的问题
- 占位符语法-Scala
- C语言Math函数库简介
- Kaggle新赛:Lyft 自动驾驶运动预测,发布迄今最大预测任务数据集
- [wn.run/]网页超好用的命令
- 4-20校招面试总结
- 按照拼音、部首、笔画排序功能(oracle)
- 高德地图:实现3D模型轨迹回放效果(类似百度地图汽车模型路书)
热门文章
- PyCharm调试时一直显示collecting data
- 设计模式之(九)--包装模式(decorator)
- Rigify:面向初学者解决Rigify各种错误的入门级通用解决办法
- vue3中 provide 和 inject 用法
- 二分类神经网络结果准确率50%,loss一直在0.69的解决方法
- python none什么意思_python – 什么是self = None?
- Google Earth上划定矢量范围并导出为KMZ文件
- 实现内嵌tomcat
- unity无光照着色器(顶点片元着色器)使用TAA抗锯齿后角色移动时模糊(虚影)解决方案
- 今日头条信息流 - 开户技巧