[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

使用 PHP 进行调试。 现在我该怎么办...?

你好。
我叫 Bandai,负责《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);

输出如下所示:

数组 ( 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 数组 ( [0] => a [1] => b [2] => c [3] => d )

顺便说一句, 的示例源代码
:var_export - Manual描述了如何使用 eval 将 var_exported 数据重新定义为变量,但我不确定它是如何使用的,但这就是要点。

 

var_export 的真正威力

var_export充分展示了其API开发能力,这是我们的专长。
在API开发中,我们经常会处理收到的请求,并以JSON格式输出,但是当我们使用var_dump时,会返回带有var_dump信息的JSON数据作为响应,所以在客户端解析JSON时,肯定会出错。

当时,我想你经常通过tailing日志文件来检查操作,但正如上面提到的,你需要一些技巧来将var_dump信息写入日志文件。
使用 var_export,只需在第二个参数中添加 true 即可将输出存储在变量中,因此输出到日志文件非常容易。

使用fuelphp,您可以按如下方式输出到日志文件。

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

这是具有可变参数的 var_dump 根本无法做到的壮举。

 

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

我只能说,习惯就好。
就是这样。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
2,902
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

万代洋一

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