楼主昨天写 PHP 就碰到 PDO 扩展的一个大坑,详情 https://segmentfault.com/q/1010000008305175
PDO 的参数绑定 bindParam 方法第二个参数是传递一个引用类型,而不是值,因为这个问题我前天晚上反反复复调试了半天,甚至去各大 PHP 群里面问了一些"资深大牛"都说不知道,看来现在的程序员确实都是用多了框架都忘记了 PHP 原生的各种坑啊。
还有 JavaScript 的 this 指向也让很多初学者摸不着头脑,不过这貌似是函数式编程语言的特性把,不知道算不算一种坑呢?
话说别的编程语言有类似的坑吗?各位可以分享分享
1
hweining 2017-02-12 00:49:23 +08:00
JS 的 callback hell 算吗?laravel:从入门到重装虚拟机;没有虚拟机环境, migragte 用不上,
|
2
jarlyyn 2017-02-12 00:57:49 +08:00 3
php 和 js
|
3
linboki 2017-02-12 01:00:26 +08:00 via Android 1
c++
|
4
zhuce1234578888 2017-02-12 01:02:52 +08:00
python 之外的任何语言
|
5
ericls 2017-02-12 01:04:58 +08:00 via iPhone
this 和 functional 有何关系?
|
6
Jakesoft 2017-02-12 01:12:16 +08:00 via iPhone 2
文档中参数有&符号的,表明是引用传递。
这怎么能叫坑呢,明显是卤煮没有仔细看文档。 |
7
Jakesoft 2017-02-12 01:16:45 +08:00 via iPhone
引用传递特点有仨:
函数会修改变量本身; 不能传具体值,比如 func(12),如果 func 第一个参数是引用的话; 不会新开辟内存,这应该都知道。 |
8
just4test 2017-02-12 01:20:03 +08:00
AS3 ( Flash )。编译器都不稳定。早期版本编译一个包里面元素多了就不能成功打包,需要拆成两个包。
后来的版本经常有语法错误检查不出来能够成功编译,运行时候报错的问题(调用栈下溢听说过么)。或者偶尔出现代码完全没问题编译出来的程序运行时报错,重新编译就好了的问题。 |
9
chairuosen 2017-02-12 01:29:51 +08:00
js ,因为运行你代码的环境你不能控制
|
10
Miy4mori 2017-02-12 01:32:07 +08:00 8
坑最少的肯定是 java ,但是人们总是嫌弃它。
|
11
changwei OP |
12
changwei OP @Jakesoft 因为我访问 www.php.net 很慢, w3c 也一样(因为 w3c 他引用了一个谷歌字体,我又没改过 hosts ),想问问国内还有什么比较快的在线查 php 以及常用扩展 api 的地方?
|
13
scnace 2017-02-12 01:57:32 +08:00 via Android
golang 昨天遇到一个 xml unmarshal 的时候 namespace 会莫名其妙消失的 bug 官方的 issue 现在还开着 还好用第三方包解决了!
|
14
tyrealgray 2017-02-12 01:59:35 +08:00 via iPhone
c++
|
15
ryd994 2017-02-12 02:01:23 +08:00 via Android
人
脑残不能怪机器 人傻不能怨语言 |
16
Perry 2017-02-12 02:03:42 +08:00
Java 的 Swing 。。。
|
17
lhbc 2017-02-12 03:14:22 +08:00
大部分较流行的语言,都有很多水货码农,碰到这样的同事坑最多。
|
18
wellsc 2017-02-12 03:20:15 +08:00 via Android
this 是 oop 的啊
|
19
zhidian 2017-02-12 03:21:37 +08:00
this 只是作用域啊……
|
20
patx 2017-02-12 03:51:14 +08:00
代码质量因人而异,别把锅甩给语言
|
21
akking 2017-02-12 03:53:12 +08:00
this 奇怪的地方是因为人们误认为 JS 是 Class-based OOP 语言(比如 Java ),但 Javascrit 其实是 Prototype-based. 与其说是“坑”, 不如说是“特性”...
|
22
murmur 2017-02-12 06:45:32 +08:00 2
js 的 this 其实有一套很好的解决方案了, jquery 把所有的事件都绑定当前触发的元素作为 this ,然后虚拟了一个 data 方法直接可以在元素上“放”数据,这样只要元素对数据就肯定对
可惜大神都鄙视 jQuery ,喜欢闭包什么的 |
24
Khlieb 2017-02-12 08:46:14 +08:00 via Android
要是能把坑填上,坑多坑小都不是问题
|
25
ewBuyVmLZMZE 2017-02-12 08:57:02 +08:00
Lua
|
26
mcfog 2017-02-12 09:11:16 +08:00 via Android
不是我说啥,碰到问题了都不好好看官方文档,换什么语言都没的治
还有这种发帖的思路,你觉得你这样发帖,下面会出现有助于你的内容么? |
27
flydogs 2017-02-12 09:30:09 +08:00 via iPhone
查一下最终执行 sql ,再查一下 php 函数说明,就明白怎么回事了
|
28
linxl 2017-02-12 09:47:40 +08:00
楼主和我一样, 把不认真阅读文档当做坑.
|
29
gouchaoer 2017-02-12 09:50:57 +08:00 via Android
这个在 stackoverflow 上 vote 很高的,一开始是为了性能吧,后来为了兼容性就不改了。。。有很多有问题的函数在 php7 里面都留下来了,比如 parse_str 的覆盖全局变量的危险做法
|
30
gouchaoer 2017-02-12 09:54:40 +08:00 via Android
php 的 unserialize 就是坑,估计以后还会爆漏洞
别的坑的话,我暂时想不到了 |
31
abcbuzhiming 2017-02-12 09:54:44 +08:00
第一名 C++,第二名 JS ,另外楼主,你这哪叫坑,你这分明是自己没认真看文档。我说的这两个,里面坑有些你去翻文档都翻不到,放狗搜半天才在某个叫角落里找到类似,“这是编译器实现问题”,“这是历史遗留问题”的坑
|
32
ikaros 2017-02-12 10:12:52 +08:00
js 吧,灵活性越高的语言坑越多
|
33
huntererer 2017-02-12 10:23:02 +08:00
js 应该不是坑最多的,不过确实有一些坑,毕竟是 10 天做出来的。不过好在来一次新 ES 就填不少坑。不过 this 这个和函数式没什么关系。
|
34
huntererer 2017-02-12 10:23:42 +08:00
坐等说 python 的编码
|
35
itfanr 2017-02-12 10:35:18 +08:00 via Android
js 为首
|
36
mringg 2017-02-12 10:52:41 +08:00 via iPhone
js......
|
37
chenxu 2017-02-12 10:59:33 +08:00 via Android
js
|
38
janxin 2017-02-12 10:59:40 +08:00
C++、 Javascript 一定榜上有名
|
39
Jackeriss 2017-02-12 11:02:59 +08:00 via iPhone
@huntererer 这个还好吧,统一编码就好了,而且 3 已经把坑填了。
|
41
dorentus 2017-02-12 12:52:07 +08:00 via iPhone 1
|
42
gisonrg 2017-02-12 12:56:27 +08:00 via iPhone
js 语法糖(keng)太多了
|
43
oska874 2017-02-12 13:56:23 +08:00
C
编译器扩展,不同标准,各种未定义,各种优化,各种硬件相关,。。。。 |
44
holy_sin 2017-02-12 14:02:42 +08:00
汇编
|
45
Doubear 2017-02-12 14:09:10 +08:00
有 go 语言坑么?啥玩意都要自己整一套,写起来真是蛋疼死
|
47
maomaomao001 2017-02-12 14:12:36 +08:00 via Android
js 挺好的,坑不多吧,理解 this ,原型链,闭包等一些概念, js 完全不是问题
|
48
hwsdien 2017-02-12 14:15:56 +08:00
C++
|
49
SuperMild 2017-02-12 14:16:49 +08:00 2
综上所述,人们习惯把自己不懂又不懒得去搞懂的知识点称之为坑。
|
50
chengluyu 2017-02-12 14:22:36 +08:00
JavaScript 还好吧。新的 ES2015 、 ES6 和 ES7 所加的大部分特性也只是语法糖而已,基本就是读文档就能学会的东西;只有少数的东西去要专门花时间理解。
|
51
chengluyu 2017-02-12 14:27:35 +08:00
对了其实楼主说的这一点是不对的:
> 还有 JavaScript 的 this 指向也让很多初学者摸不着头脑,不过这貌似是函数式编程语言的特性把,不知道算不算一种坑呢? 函数式语言的特征不是 this 指针的搞法……而是纯函数、副作用、高阶函数、柯里化那些东西,更不用说诸如 monad 、 dependent type 这些东西了。 JavaScript 能算函数式语言特征的就是 function as first class 和闭包。 |
52
djFFFFF 2017-02-12 14:57:59 +08:00 2
二战梗:“你粉哪个国家,取决于对哪个国家了解更少”
|
53
viosey 2017-02-12 15:06:34 +08:00
js
|
54
chemzqm 2017-02-12 15:33:19 +08:00
@murmur #22 jquery 最大问题在于完全思路完全基于 DOM ,没有可控的组件化机制,业务代码与 UI 代码完全耦合,相比与通过特定接口交互所设计的组件,不利于多人协作以及相对复杂的页面交互场景。
this 应该是做 OO 时用的,原型函数内定义的函数使用箭头函数就可以了,而不是 jquery 这种把 this 指向元素的做法,不是说操作元素就不好,而是这种方式如果跟面向对象的 UI 设计混用会很容易导致混乱。 |
56
murmur 2017-02-12 15:51:41 +08:00
@chemzqm 在那个年代这不是个问题,是现在前端要秒天秒地秒空气,通杀一切 UI 部分,这个还需要 webasm 来终结
我要的是 JAVAscript 不是那个四不像的 es6 es7 什么 讲个笑话, javascript 有 oo ? 那个箭头函数我认为是个败笔, js 小黄书关于 this 那本讲了 this 的四个原则,就是教你怎么去看 this 是啥,你设计太奇葩,大家都学会没啥了 突然你又把 this 从运行时改成语义化,这就很操蛋了 类似的还有循环类函数对 undefined 的处理 |
57
fomenyesu 2017-02-12 15:54:09 +08:00
Java 的 swing +1
|
58
raptor 2017-02-12 16:10:27 +08:00 1
PHP 是最好的语言,怎么能说有坑呢?
我觉得最坑的是 SHELL ,其次是 JS |
59
ifaii 2017-02-12 16:14:34 +08:00
在用过的当中, shell 最坑,无比难用,习惯了 Python 在用这玩意真是痛苦
|
60
owt5008137 2017-02-12 16:34:13 +08:00 via Android
比坑的话, c++一出,谁与争锋
|
62
aploium 2017-02-12 17:33:00 +08:00 via Android
@huntererer 觉得 python 编码坑的大概还停留在 2.x ,而且不会__future__吧
|
63
willm 2017-02-12 17:38:06 +08:00 via Android
c++:你们都是来争第二的么?
|
64
zhuangtongfa 2017-02-12 17:43:09 +08:00
函数式没有 this,this 是 OOP 的,ES6 以后 JS 就没啥大坑了
|
65
chipmuck 2017-02-12 17:52:35 +08:00
同事
|
66
cchange 2017-02-12 20:14:46 +08:00
要说语言 PLC 用的 STL 和 LAD 还有高级的 SCL ,坑是最少的,每个指令要得到的信息都是已知的,好多是硬件实现的
语言这个东西 看使用场合吧 |
67
xcodebuild 2017-02-12 20:40:50 +08:00
@hweining 虽然 js 坑是挺多的。。但是现在( 2017 年)还在抱怨 callback hell 实在是没说到点子上
|
68
viator42 2017-02-12 21:06:04 +08:00 2
bash ,语法格式各种反人类,不折腾一圈根本写不出东西来,写完的都留着不敢删因为没法保证还能再写出来
|
69
zhuangzhuang1988 2017-02-12 21:08:16 +08:00
php.. 最坑了。。
|
71
wdlth 2017-02-12 21:18:53 +08:00
人说的话最坑……
|
72
aliuwr 2017-02-12 22:47:37 +08:00
居然没人提 Scala 啊,失望。
果然是没人用么。。。 |
73
AnyISalIn 2017-02-12 23:00:25 +08:00
js
|
74
mingyun 2017-02-12 23:12:49 +08:00
py2 编码坑
|
75
MntCw 2017-02-12 23:25:20 +08:00 via Android
这叫坑?文档里有写清楚的能叫坑?
|
76
xialdj 2017-02-12 23:54:39 +08:00 via iPhone
js 反正是奇技淫巧最多的语言 语言层面上历史遗留的问题就很多 有的坑还入了标准
|
78
murmur 2017-02-13 09:19:19 +08:00
@Gantz 昨天看到一个笑话图, es3 的精髓是那么多, es6 的精髓还是跟 es3 一样多,实际上除了 es5 的 get/set 方法绑定之外,其余的都是跑在 polyfill 上的
用 java 的没说用 java8 鄙视用 apache utils 的,但是前端文章动不动不用 es6 你就 xx 一样的标题 |
79
messXD 2017-02-13 13:25:02 +08:00
python?
项目一大各种耦合搞死你 |
80
irenicus 2017-02-13 15:16:08 +08:00
我会的语言不多,但据说是 C++
我用 perl 用得神清气爽我会乱说? |
81
newtype0092 2017-02-13 21:20:31 +08:00
@syhily 说来听听,看看我遇到过没有~
|