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

244 天前
 godloveplay

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

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

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

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

x86
244 天前
thinkphp 本身就可以配置关闭不抛出异常的呀
dongtingyue
244 天前
php 环境改成一样的,要不然会有问题测不出来。
GodlikeKarl
244 天前
可能你的参数有问题,比如要传的 map ,结果传了一个 int 数字

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

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

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

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

© 2021 V2EX