PHP 最恶心的地方莫过于数组明明是一个 list,一些操作,比如 filter, unset, unique 去重等操作后, index 不会 reset,转 json 后变成了一个 object!

2023-09-12 12:53:55 +08:00
 HackerJax
op 表示深受其害!(狗头
4298 次点击
所在节点    PHP
57 条回复
lscho
2023-09-12 15:16:20 +08:00
能意识到 list 和 object ,但是却不愿意看一下 json_encode 的文档?

https://www.php.net/manual/en/function.json-encode.php

第二个参数干什么用的?
well775397252
2023-09-12 15:32:06 +08:00
?我倒觉得符合逻辑,数组本来就是 hash table 实现的
darkengine
2023-09-12 15:35:25 +08:00
我们公司的半桶水 phper 就这么给前端返回数据的,某个字段有数据的时候是数组,没有数据的时候是{},丢
x86
2023-09-12 15:37:24 +08:00
可能爽的时候你没看到。。。
aababc
2023-09-12 15:38:30 +08:00
@lscho 这个和第二个参数没有关系,主要是 PHP 的没有纯数组这个概念,所以当数据的 key 一旦不连续,json_encode 的时候就会有问题
qeqv
2023-09-12 15:49:29 +08:00
@darkengine 空数组用 json_encode 默认不就是是 [] 吗
qeqv
2023-09-12 15:51:40 +08:00
array_values
gym345600
2023-09-12 15:51:42 +08:00
套用一个公式:如查你觉得不好,可以改善它啊
NjcyNzMzNDQ3
2023-09-12 16:05:56 +08:00
借用下 20 楼的话`还以为又有什么高论`

没 filter ,unset ,unique 你这些前辈写的好用函数,你都要自己写呢,那时候出问题看你赖谁 🐶
mrpzx001
2023-09-12 16:33:21 +08:00
水平不够怪语言
angryPHP
2023-09-12 16:57:21 +08:00
什么?还有人用 PHP ?
duan602728596
2023-09-12 16:59:28 +08:00
所以说大家都选择了更好的
darkengine
2023-09-12 17:04:06 +08:00
@qeqv 包了一个查数据库的函数的返回值组装起来,不知道具体他代码咋写的
sdwgyzyxy
2023-09-12 17:04:10 +08:00
😂 终于见到同僚了,我以为 php 从 v2 绝迹了。
wu00
2023-09-12 17:33:02 +08:00
@darkengine 对接过第三方平台的开放接口,就是这种情况,当时把我恶心坏了...
SwimmingDragon
2023-09-12 17:33:04 +08:00
如果是必须要用,那就好好研究,就算有点瑕疵,也可以自己优化。如果非必须,那你还用了干嘛?换一个自己熟悉的呗
flyqie
2023-09-12 17:48:30 +08:00
@darkengine #23

奇怪,刚才试了下,貌似 php7.4.27 默认 array()做 json_encode 之后就是[],你们 php 不会直接用 object 了吧。
xiangyuecn
2023-09-12 17:49:49 +08:00
上古时期的 asp+vbscript 的引用类型的数组 比 php 的值类型的数组好使😂

asp+jsscript 简直要吊打当代任何弱类型语言(比 nodejs 领先 20 年),可惜已经凉透了😂
darkengine
2023-09-12 17:55:36 +08:00
@flyqie 很有可能,我记得他们用的还是 ThinkPHP 5 ,工具扫出来一堆漏洞,笑死
heysnakelis
2023-09-12 17:59:56 +08:00
@darkengine 估计查到数据是返回的数组,没查到数据的时候给的空 object😂

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

https://www.fyfyfm.apispeedy.workers.dev/t/973000

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

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

© 2021 V2EX