- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当处理某些 PHP 对象时,可以执行 var_dump()
并且 PHP 将值打印到屏幕上,不断打印,直到达到我假设的 PHP 内存限制。这方面的一个例子是转储一个简单的 HTML DOM 对象。我假设因为您能够遍历对象的子对象和父对象,所以执行 var_dump()
会给出无限的结果,因为它找到一个对象的父对象,然后递归地找到它的子对象,然后找到所有这些子对象的 parent 并找到那些 child ,等等等等。它会继续下去。
我的问题是,如何避免这种情况并防止 PHP 以递归方式一遍又一遍地转储相同的内容?使用简单的 HTML DOM 解析器示例,如果我有一个没有子对象的 DOM 对象并且我var_dump()
它,我希望它只转储对象而不开始遍历 DOM 树以及抛弃 parent 、祖 parent 、其他 child 等。
最佳答案
在您的开发环境中安装 XDebug 扩展。它用自己的变量替换了 var_dump,默认情况下只有 3 个成员。
https://xdebug.org/docs/display
它将以省略号的形式显示 4 层深的项目。您可以使用 ini 设置更改深度。
所有 PHP 函数:var_dump、var_export 和 print_r 不跟踪递归/循环引用。
编辑:
如果你想以困难的方式做到这一点,你可以编写自己的函数
print_rr($thing, $level=0) {
if ($level == 4) { return; }
if (is_object($thing)) {
$vars = get_object_vars($thing);
}
if (is_array($thing)) {
$vars = $thing;
}
if (!$vars) {
print " $thing \n";
return;
}
foreach ($vars as $k=>$v) {
if (is_object($v)) return print_rr($v, $level++);
if (is_array($v)) return print_rr($v, $level++);
print "something like var_dump, var_export output\n";
}
}
关于PHP - 非递归 var_dump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7265191/
我已经在装有 Windows 的计算机上安装了 xdebug,默认情况下它运行良好 - 轨迹色彩丰富且漂亮,但在另一台装有 ubuntu 10.10 的计算机上它是无色且没有任何格式的。 我尝试在 p
此 var_dump 结果中的数字 #11 和 (0) 是什么意思: object(PDO)#11 (0) { } 我有一个类,我从它创建了一个对象并在多个地方使用它。 最佳答案 我也不知道,一起来了
这个问题已经有答案了: UTF-8 all the way through (13 个回答) 已关闭 6 年前。 我现在正在从事日本项目。当我使用 var_dump() 时,日文字符在浏览器中无法正确
根据函数名称本身,var_dump() 转储有关所提供参数的所有内容,对象的函数除外。 有没有办法导出这些函数? 最佳答案 不能获取对象的方法,但是可以获取类的方法: var_dump(get_cla
我正在处理一个项目,但 $_SESSION['username'] 没有回应 我使用了 var_dump,这就是我从该结果中得到的结果 我的问题是如何修复. array(4) { ["SES
array(14) { [0]=> string(1) "1" ["id"]=> string(1) "1" [1]=> string(7) "myUserName" ["
您好,我有一个网站,当用户从网页中选择一个品牌后,该网站会查询 CarID。因此,将执行 SELECT 查询,然后将 CarID 值传递给 PHP 变量。然而,目前我用来调试问题的 var_dump
我想允许用户在我的网站上上传其个人资料图片的图像(文件)。他们通过 HTML 表单上传图像,但我无法将文件移动到我想要的文件夹。我不想弄乱 php.ini 文件来更改上传路径。我想使用 move_up
当处理某些 PHP 对象时,可以执行 var_dump() 并且 PHP 将值打印到屏幕上,不断打印,直到达到我假设的 PHP 内存限制。这方面的一个例子是转储一个简单的 HTML DOM 对象。我假
我不喜欢 var_dump 打印对象的方式。我想用这个函数覆盖它: function var_dump($object, $die = true) { print ''; print_
我想弄清楚为什么一个变量没有触发它应该触发的条件。 var_dump 报告如下: string(20) "0" 为什么明明是1长度却报长度为20? 最佳答案 它可能正在渲染 html。即 var_du
php var_dump 函数作用是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型. 来看看var_dump 语法: 复制代码 代码如下: va
我可以将 var_dump($var) 的输出分配给一个变量吗?作为默认行为,var_dump() 只是在屏幕上打印输出。我想将其输出附加或分配给其他变量,然后再输出。喜欢: $a = true; $
我想 var_dump 一个变量来调试我的数据库操作。我不想安装任何调试器,所以我在我的模型中使用了 var_dump($result)。它输出错误。 This page contains the f
var_dump(object) 返回:object()#1 我真的很想知道 object()#1、object()#2 和 object()#3 之间有什么区别。 任何帮助表示赞赏。 最佳答案 va
我正在编写一个脚本来 curl 另一个网站,然后解析结果。我似乎遇到了一些奇怪的问题,我不明白它们来自哪里;我在下面包含了我的代码中有问题的部分以及从中返回的输出: '; echo $Book
有没有方便的方法来转储Scala中指定对象的所有成员, 像var_dump(), PHP function ? 最佳答案 正如“How to Dump/Inspect Object or Variab
当我尝试从 pdo 语句中获取值时,它会出错,如果我转储它,它会显示 false。 $stmt = $pdo->prepare('SELECT * FROM tbl WHERE student_id
经过几个小时的研究,到目前为止,我自己还没有找到合适的解决方案,因此我在这里! 我目前正在开发一个学校项目,该项目使用 login.php 验证器文件来检查用户是否填写了所有输入等,并创建 sessi
我有以下代码: function fetch_conversation_messages($conversation_id){ $conversation_id = (int)$convers
我是一名优秀的程序员,十分优秀!