PHP5.0 的框架,项目在生产环境 用 ng 部署 同样的代码没有报错,dump($get['type']); 输出了 null 但是我本地环境 就直接抛异常了。 有没有 PHP 的朋友帮忙看看。。
1
wmm221166 2023-09-08 15:18:24 +08:00
一个 dump($get) 一个 dump($get['type']), 然后 $get 是个 int
|
2
GodlikeKarl 2023-09-08 15:19:50 +08:00
你把$get 数组整个打印出来看有没有'type'对应的元素
|
3
abcdexx 2023-09-08 15:23:22 +08:00
$get 是个 int 你也把它当数组使用? 你本地和生产环境 php 版本不一样吧? 要先判断 is_array($get)。
|
4
token10086 2023-09-08 15:26:31 +08:00 1
|
5
godloveplay OP @wmm221166 #1 对的,生产竟然不报错。我看不懂了
|
6
godloveplay OP 生产本地 php7.4 生产应该是 7.2
|
7
garlics 2023-09-08 15:31:31 +08:00
版本问题,线上估计是 5.几的版本,本地估计是 7+的版本。如果版本一样就是错误提示等级不同,需要改配置文件。
|
8
godloveplay OP |
9
zjsxwc 2023-09-08 15:37:21 +08:00
盲猜是 php5 碰到 $arr["non-exist-key"] 会返回 null 值,而 php7 碰到这种情况是抛异常。
|
10
godloveplay OP 我是 java 程序员,看到这个诡异的 情况 想请教一下,是不是什么设置让 生产 不抛异常的。
|
11
godloveplay OP @zjsxwc #9 我本地改 php5 试试看 T T
|
12
godloveplay OP 下了好几个 PHP 版本 试了一下,php7.2 可以了。谢谢各位的热心 [抱拳]
|
13
godloveplay OP @token10086 #4 请问 PHP 如何像 java 一样 在 IDEA 里面 断点 调试呀? 是使用 PHP xdebug 插件吗?
|
14
shiroyuri 2023-09-08 16:22:13 +08:00
PHPStorm 配置 Xedug 插件
|
15
0x49 2023-09-08 17:10:31 +08:00
php7.4 需要 $get['type'] ?? null
|
16
dilu 2023-09-08 17:53:30 +08:00
线上环境肯定是关掉报错提示了,php.ini 有个 error_reporting 可以控制报什么级别的错误,一般生成环境是全部关掉,开发环境是 warn 起步。
|
17
Rache1 2023-09-08 18:48:54 +08:00
|
18
x86 2023-09-08 18:54:11 +08:00
thinkphp 本身就可以配置关闭不抛出异常的呀
|
19
dongtingyue 2023-09-08 19:05:22 +08:00
php 环境改成一样的,要不然会有问题测不出来。
|
20
GodlikeKarl 2023-09-08 21:00:26 +08:00
可能你的参数有问题,比如要传的 map ,结果传了一个 int 数字
|
21
1wlinesperday 2023-09-08 22:48:00 +08:00
借楼问一下,帮忙部署一个 PHP 项目多少钱啊 https://secure.phabricator.com/book/phabricator/article/installation_guide/
|
22
taozywu 2023-09-08 22:58:41 +08:00
@1wlinesperday 可以私聊下 vx:dGFvenl3dQ==
|
23
dayeye2006199 2023-09-08 23:07:42 +08:00 via Android
朋友 docker 了解一下
|
24
yogogo 2023-09-09 00:11:33 +08:00 via Android
服务器没有开启异常
|
25
wellerman 2023-09-09 00:27:52 +08:00
@godloveplay #5 结合顶上两张图片,这代码在本地也不会有预期的结果。$get 本来要接受一个数组,你给传了整数 1127 ($supplier_id ) 当然报错。生产环境之所以没报错,是因为生产环境关闭了错误显示。打开错误显示,肯定一样的错误。 另,#3 楼也已经指出错误原因。
显示全部错误: ini_set('display_errors', true); error_reporting(E_ALL); |
26
qsnow6 2023-09-09 00:31:56 +08:00
docker 可以抹平所有环境的差异
|
27
ganbuliao 2023-09-09 10:46:22 +08:00
打印一下生产环境的 php ini 和本地环境的
|