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 函数很有用,因为它还会输出数组中的数据项数量。

我只能说,习惯就好

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

在 Beyond,我们将我们在系统开发方面的丰富经验、技术和专业知识与开源软件技术和云技术(如 AWS)相结合,以可靠的质量和卓越的性价比提供网络系统的合同开发服务。

我们还负责服务器端/后端开发和专有 API 协作开发,充分利用我们的技术和专业知识,为大规模、高负载的游戏、应用程序和数字内容构建和运营 Web 系统/应用程序基础设施。

如果您在开发项目方面遇到任何问题,请访问以下网站。

● Web系统开发
● 服务器端开发(API/数据库)

如果您觉得这篇文章有用,请点击【点赞】!
0
加载中...
0票,平均分:0.00/10
3,283
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但我也很荣幸能够从事其他各种工作,包括市场营销。
我在Beyond中的肖像权采用CC0协议。