PHP调试。接下来该做什么?解释一下var_export,一个实用而强大的工具。

目录
你好,
我是万代,Wild团队负责开发的成员。
调试是开发过程中不可避免的一部分。在本文中,我想解释一下 var_export,它是调试时的强大工具。
调试时你会做什么?
我认为 `var_dump` 是最基础的函数。任何不知道它的人,大概都没写过 PHP 代码。
然而,`var_dump` 本身无法输出到日志(也就是说,它本身无法做到这一点。虽然并非不可能,但考虑到调试的目的,这非常不方便)。
我认为这是 `var_dump` 最大的问题。
所以,是 print_r 吗?
在 print_r 前后回显 pre 标签的做法太常见了,简直成了个笑话。不过,我有时也会这么做(真的吗?)。
序列化?你会把它存入数据库吗?如果是基于 PHP 的,那没问题……但当然不会。用序列化进行调试似乎是一条棘手的道路,但有时人们确实会这么做。
如果你想直接显示所有内容,var_dump 就可以,但如果你要将其用于写入日志之类的目的,我建议使用 var_export。
也许我现在不需要强调这一点。
var_export 是什么?
顾名思义,`var_export` 函数用于导出变量。
其输出结果直接体现了 PHP 变量声明的格式。
<?php $hoge = array( 'a', 'b', 'c', 'd', ); var_export($hoge);
输出结果将类似于以下内容:
array ( 0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd', )
顺便一提,var_dump 和 print_r 的格式如下。
// var_dump array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" } // print_r Array ( [0] => a [1] => b [2] => c [3] => d )
顺便一提,PHP: var_export - 手册 中的示例源代码
展示了如何使用 eval 将 var_exported 的数据再次定义为变量,尽管其用途尚不明确。它本质上就是这么做的。
var_export 的真正威力
var_export 在 API 开发中真正大放异彩,而这正是我们擅长的领域。
在 API 开发中,处理接收到的请求并将其输出为 JSON 格式是很常见的做法。然而,使用 var_dump 返回的 JSON 数据会附带 var_dump 信息作为响应,这不可避免地会导致客户端在尝试解析 JSON 时出现错误。
在这种情况下,您通常会通过查看日志文件来检查操作,但如前所述,将 var_dump 信息写入日志文件需要一些技巧。
使用 var_export,您只需将第二个参数设置为 true,即可将输出存储在变量中,从而轻松输出到日志文件。
使用 fuelphp,您可以按如下方式将输出写入日志文件:
$hoge = array( 'a', 'b', 'c', 'd', );日志::调试(var_export($hoge, true));
这是使用可变参数的 var_dump 函数无法做到的。
var_dump 函数很有用,因为它还会输出数组中的数据项数量。
我只能说,你会习惯的。
仅此而已。
如果您想咨询开发专业人士
在 Beyond,我们将我们在系统开发方面的丰富经验、技术和专业知识与开源软件技术和云技术(如 AWS)相结合,以可靠的质量和卓越的性价比提供网络系统的合同开发服务。
我们还负责服务器端/后端开发和专有 API 协作开发,充分利用我们的技术和专业知识,为大规模、高负载的游戏、应用程序和数字内容构建和运营 Web 系统/应用程序基础设施。
如果您在开发项目方面遇到任何问题,请访问以下网站。
1
