PHP 项目求助,同一份代码 生产环境不报错,本地启动就报错。

2023-09-08 15:11:35 +08:00
 godloveplay

PHP5.0 的框架,项目在生产环境 用 ng 部署 同样的代码没有报错,dump($get['type']); 输出了 null 但是我本地环境 就直接抛异常了。 有没有 PHP 的朋友帮忙看看。。

https://imgse.com/i/pP6CZSH https://imgse.com/i/pP6CnOI

2247 次点击
所在节点    PHP
27 条回复
wmm221166
2023-09-08 15:18:24 +08:00
一个 dump($get) 一个 dump($get['type']), 然后 $get 是个 int
GodlikeKarl
2023-09-08 15:19:50 +08:00
你把$get 数组整个打印出来看有没有'type'对应的元素
abcdexx
2023-09-08 15:23:22 +08:00
$get 是个 int 你也把它当数组使用? 你本地和生产环境 php 版本不一样吧? 要先判断 is_array($get)。
token10086
2023-09-08 15:26:31 +08:00
打个断点调试下
另外建议本地和线上环境一毛一样,建议用 docker 去部署
https://github.com/zhangjunjie6b/phpdocker
godloveplay
2023-09-08 15:29:09 +08:00
@wmm221166 #1 对的,生产竟然不报错。我看不懂了
godloveplay
2023-09-08 15:29:28 +08:00
生产本地 php7.4 生产应该是 7.2
garlics
2023-09-08 15:31:31 +08:00
版本问题,线上估计是 5.几的版本,本地估计是 7+的版本。如果版本一样就是错误提示等级不同,需要改配置文件。
godloveplay
2023-09-08 15:36:51 +08:00
使用的是 thinkphp5.0 的框架
下图是生产环境的输出

https://imgse.com/i/pP6iiGD
zjsxwc
2023-09-08 15:37:21 +08:00
盲猜是 php5 碰到 $arr["non-exist-key"] 会返回 null 值,而 php7 碰到这种情况是抛异常。
godloveplay
2023-09-08 15:38:03 +08:00
我是 java 程序员,看到这个诡异的 情况 想请教一下,是不是什么设置让 生产 不抛异常的。
godloveplay
2023-09-08 15:38:53 +08:00
@zjsxwc #9 我本地改 php5 试试看 T T
godloveplay
2023-09-08 15:47:41 +08:00
下了好几个 PHP 版本 试了一下,php7.2 可以了。谢谢各位的热心 [抱拳]
godloveplay
2023-09-08 15:57:33 +08:00
@token10086 #4 请问 PHP 如何像 java 一样 在 IDEA 里面 断点 调试呀? 是使用 PHP xdebug 插件吗?
shiroyuri
2023-09-08 16:22:13 +08:00
PHPStorm 配置 Xedug 插件
0x49
2023-09-08 17:10:31 +08:00
php7.4 需要 $get['type'] ?? null
dilu
2023-09-08 17:53:30 +08:00
线上环境肯定是关掉报错提示了,php.ini 有个 error_reporting 可以控制报什么级别的错误,一般生成环境是全部关掉,开发环境是 warn 起步。
Rache1
2023-09-08 18:48:54 +08:00
这个图床,还不能国外访问。。。

x86
2023-09-08 18:54:11 +08:00
thinkphp 本身就可以配置关闭不抛出异常的呀
dongtingyue
2023-09-08 19:05:22 +08:00
php 环境改成一样的,要不然会有问题测不出来。
GodlikeKarl
2023-09-08 21:00:26 +08:00
可能你的参数有问题,比如要传的 map ,结果传了一个 int 数字

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX