与PHP调试。那我该怎么办...? VAR_EXPORT的解释,一个有用且强大的盟友。

你好,
我是万代,Wild Team的开发团队负责人。

调试是开发过程中不可避免的一部分。在本文中,我想解释一下 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 )

顺便一提, 的示例源代码
:var_export - 手册展示了如何使用 eval 将 var_exported 数据重新定义为变量,但其目的尚不明确,但基本上就是这样做的。

 

var_export 的真正威力

var_export 是一个功能强大的工具,在 API 开发中得到了充分利用,而 API 开发正是我们的专长。
在 API 开发中,接收到的请求通常会被处理并以 JSON 格式输出,但如果使用 var_dump,则会返回包含 var_dump 信息的 JSON 数据作为响应,这必然会导致客户端解析 JSON 时出错。

在这种情况下,您可能需要查看日志文件以检查其运行情况,但如上所述,将 var_dump 信息写入日志文件需要一定的技巧。
而使用 var_export,您只需将第二个参数设置为 true 即可将输出存储在变量中,从而轻松地将其输出到日志文件。

使用 fuelphp,您可以按如下方式将输出写入日志文件:

$hoge = array( 'a', 'b', 'c', 'd', );日志::调试(var_export($hoge, true));

这是使用可变参数的 var_dump 函数无法做到的。

var_dump 函数很有用,因为它还会输出数组中的数据项数量。

我只能说,习惯就好

如果您想咨询开发专业人员

在《超越》中,我们将富裕的往绩,技术和专有技术结合在系统开发中,迄今为止,我们已经使用OSS技术和云技术(例如AWS)来创建具有可靠质量和出色成本性能的Web系统的合同开发。

我们还使用Web系统/应用基础架构的构建和操作的技术和专业知识来研究自己API的服务器端/后端开发和链接开发,用于大规模,高度加载的游戏,应用程序和数字内容。

如果您在开发项目方面遇到麻烦,请访问下面的网站。

●Web系统开发
●服务器端开发(API/DB)

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
3,261
X Facebook 哈特纳书签 口袋

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。