记录一次中文逗号的神奇 bug
之前写了这样的代码
$result = $uploader->save($request->avatar, 'avatars', $user->id,362)
程序不报任何错误,一切功能正常运行,就是后面的 362
参数无论如何都不生效,之后在 save
方法里写了个 1/0;
通过异常堆栈信息来查看实际的参数传入值
Arguments
UploadedFile {#547 ▶}
"avatars"
null
$user->id
竟然是null?362
竟然完全没传进去。
后来才发现$user->id,362
使用了中文逗号,一般情况下使用中文逗号都会报错的,但这里似乎是符合语法规范的,$user->id,362
相当于$user["id,362"]
然后我尝试写了下面的代码
$user->id,362= 1;
dd($user['id,362']);
还有下面的
$user->id,(。,?)362= 1;
dd($user['id,(。,?)362']);
结果都正常返回了1,往后应该小心$aaa->bbb
代码后写入中文符号,对程序来说是完全符合语法的,甚至都完全不会报错,上面的代码一切都正常运行,如果我没去看上传图片的尺寸的话,我根本发现不了我写了一个中文逗号!
推荐文章: