1
clippit 2013-08-22 00:07:36 +08:00 2
发帖不举例的都是标题党
|
2
gDD 2013-08-22 00:10:09 +08:00 via iPhone
楼上说得好,这种没有例子纯吐槽的烂贴比PHP的恶心不知多少,况且我每天写也没觉得有多恶心啊!
|
3
andy12530 2013-08-22 00:46:08 +08:00
比如说 isset和empty, requice & include ?
看起来一样,使用起来有时还是有区别的哦。。 |
4
saharabear 2013-08-22 01:08:39 +08:00 1
如果看起来一样,但使用起来有区别,那一定是自己没仔细看文档。比如:
1, require和include本身区别很大,一个执行一个不执行。分别用于文件执行和模板。 2, isset和empty用于处理变量是否设置或者设置了是否为空。 从程序的基本概念上,这是完全不同的。 |
5
ETiV 2013-08-22 01:15:48 +08:00 via iPhone
就知道喷喷喷喷喷
|
6
birds7 2013-08-22 01:19:14 +08:00
应该不是做技术的在评价一门语言。。。
|
7
jybox 2013-08-22 01:32:41 +08:00 1
|
8
saharabear 2013-08-22 01:45:29 +08:00
|
9
vibbow 2013-08-22 01:59:01 +08:00 via Android
@saharabear 还有python, 居然会有大版本严重不向后兼容的情况。
|
10
saharabear 2013-08-22 02:15:02 +08:00
@vibbow 嗯,我觉得python不容易也可以理解(虽然有点那啥,是吧)。我没想到的是python会多版本共生(04年开始玩python,从没想过会多版本到今天还共生)
|
11
wwqgtxx 2013-08-22 06:23:17 +08:00 via Android
@vibbow 但那也是语言进步的代价,Java向后兼容很好,导致大量过时api在语言中存留(特别是集合类库,大量老旧类库),加大了复杂度,也影响到安全性的提高
|
13
ruchee 2013-08-22 10:34:25 +08:00
@jybox 因为精心设计出来的语言基本都流于学术圈,压根流行不起来,工业上需要的就是能干活的东西,而且需要什么就可以加什么,在你加一点我加一点的过程中,API就混沌了
|
14
hanf 2013-08-22 11:18:15 +08:00
php?那个非正交设计的典范?开玩笑。
|
15
blahnice 2013-08-22 11:52:58 +08:00 1
|
16
kingwkb 2013-08-22 11:59:29 +08:00 1
@saharabear 1, require和include本身区别很大,一个执行一个不执行。分别用于文件执行和模板。
这个真的不对 我来说一个吧,parse_str 使用 传入参数来获取返回值,常用的函数中真独特 |
17
saharabear 2013-08-22 12:00:03 +08:00
@blahnice 您要较真,那就看文档去,require和include区别的确很大。后面这句“用于文件执行和模板”虽然不严谨,但我要表达的意思还是当用了include的时候,更适合于把php当模板的过程,require的时候,更适合用于普通文件的“包含并执行”的概念。 并且require和include大部分情况下都比require_once和include_once要好,因为php不用到处找是不是已经require过了。这是我要表达的,如果用词不准,那是我的问题,我改。
|
18
blahnice 2013-08-22 12:01:27 +08:00
@saharabear 你确定一个执行一个不执行?
|
19
saharabear 2013-08-22 12:03:46 +08:00
@kingwkb 嗯嗯,我的描述有问题,我的意思还是一个出了问题会执行,一个不出问题会执行,为了习惯,所以在模板中更常用include在其他地方更多用require,require出问题不执行,include会执行(我觉得我表达能力有问题了)
另外,parse_str的问题,你是说它必须把参数传进去然后获取返回值吗?这个的确独特,但我觉得还好。 |
20
saharabear 2013-08-22 12:05:00 +08:00
@blahnice 我的表达可能还是有总是,一个出了错会继续执行,一个出了错不继续执行。。。如果我表达得总是不对,我最好去睡一觉,昨天到现在有点醉(喝多了),还没清醒。但我明白这个区别,一个出错还会跑下去,一个出了错不会跑下去。。。。。(error和warning)
|
21
saharabear 2013-08-22 12:05:29 +08:00
@blahnice “我的表达可能还是有总是”,我的意思是“我的表达可能还是有问题”
|
22
msg7086 2013-08-22 12:13:44 +08:00 1
@saharabear include和require更多的还是为了区别被引用文件的重要性吧。
比如架构中,引入一个外部类库可能会考虑用include,而引入核心类库则会偏向于require。 话说模板的话用模板库会好一点吧……另外丢失模板文件不是应该fatal error的嘛…… (睡觉去吧 |
23
saharabear 2013-08-22 12:15:55 +08:00
@msg7086 失眠很久,喝酒为了睡觉,结果还是睡不着。 模板用twig挺好用的,越用越想用。
|
24
msg7086 2013-08-22 12:20:33 +08:00
@jybox 一个18年前设计出来的脚本语言,不能要求太多吧。
估计作者当时也没想到会搞得这么大吧。 既要易用性,支持内联脚本(像asp),类C语言,上手快,又要设计精良,还要有足够的向后兼容性,还要性能不差,难,很难。 python,为了一些设计上的改进,抛弃了向后兼容性,造成版本分裂。ruby/rails,每次升级都怕break。 至少PHP做版本升级的时候省心很多。 |
25
saharabear 2013-08-22 12:22:42 +08:00
@msg7086 ruby/rails升级困难吗?(不懂Ruby),求教。有朋友用Rails做站,好像一出新版就跟。
|
26
msg7086 2013-08-22 12:29:40 +08:00
@saharabear 我们这边有做企业级产品的部门对ror的升级非常谨慎。
嘛因为全程测试驱动开发,所以多数情况下测试跑绿了一般问题不大。 但是ruby193升200还是非常担心会出问题的。 毕竟是政府背景的服务,挂了的话影响很大的。 |
27
xlmo 2013-08-22 12:32:09 +08:00
为什么楼主这么恶心,提论点不列论据?
|
28
kuochung 2013-08-22 12:44:16 +08:00
经论证啊,这个楼主明显是标题党。
这个这个~每个语言啊都是相对比较而言。没有绝对。就B/S模式的应用来说,若追求快。谁最快?Rails部署很快吧,可是运行效率PHP还是蛮理想的。这点呢,facebook足以说明(具体实现不说)。 你所指的这个恶心啊,我暂且就理解成是矛盾吧。恰好PHP也是矛盾的,比如它是一个很容易掌握的web编程语言,但是“精”就比较难了。 就我本人而言,我比较厌恶的,无法逾越心里的某种“难用”“恶心”。。。等等等。。都是我对我所使用的某种技术的理解过于片面,掌握不足,没领悟其思想。这个也许就是“技术情节”吧 |
29
kuochung 2013-08-22 12:48:45 +08:00
这个补充一句啊。每个编程语言身上多少都具有一点“时代使命的”。互联网后时代不久诞生了很多编程语言么? scala,erlang,nodejs,golang。是吧。没有那个是最好的,只有适合的。
|
30
sgissb1 2013-08-22 12:49:41 +08:00
@saharabear 虽然我不并不觉得恶心,但我只是认为这里命名不是很好蛋很疼。有时候会用错,尤其是我这种初学的人。
|
31
xmbaozi 2013-08-22 12:54:37 +08:00
看了lz发过的帖子,就可以对这个贴 hehe 了
|
32
wjcody 2013-08-22 13:07:53 +08:00
呵呵...
|
33
lesswest 2013-08-22 13:10:30 +08:00
呵呵。。。不至于恶心吧
|
34
cin 2013-08-22 13:11:23 +08:00
如何刷分教科书演示帖...
|
35
itaotao 2013-08-22 13:44:51 +08:00
居然敢黑我大php,一般能问这种问题的,都是学术不精的。有人说什么精心设计,没有哪门计算机语言是精心设计的,如果可以那来个牛人精心设计一个相对完美的语言,一统天下好了,省的大家搞这么多语言。
|
36
saharabear 2013-08-22 13:53:31 +08:00
@msg7086 感谢送出。
|
37
blahnice 2013-08-22 14:14:50 +08:00 1
@saharabear
我想你还是没理解。你试试看include的文件里有个语法错误,到底会不会只是warning一下,然后一直执行下去。 你说的error和warning的区别是在查找文件进行包含的时候报错的区别,不是执行时的区别。 这真不是表述的问题,是理解的问题。 不能误导其他人嘛,发帖讨论技术要对自己说的话负责,有错误得承认,不能又牵扯出更多的错误。 |
38
kennedy32 2013-08-22 14:28:49 +08:00
@saharabear require和include只是处理失败不一样吧?都是执行的。
|
39
kennedy32 2013-08-22 14:30:01 +08:00
楼主如果觉得所有事情都有唯一办法解决,就应该去学python,这是python的哲学
|
40
Hyperion 2013-08-22 14:38:26 +08:00
表示php其实也在逐渐统一方法... 5.6去掉的一大批别名, 正则也只能使用一种风格了.
其实, 提供了这么多方法你自己选一种不就好了吗? 记住最合适的一个办法, 其他混个脸熟再顺便实践一下, 就够了, 不至于看不懂或者不会用就得了... 这么多纠结的问题本来就是不必要的... 但也请不要勿用和滥用一些东西, 例子一下子想不起来了... |
41
saharabear 2013-08-22 14:52:03 +08:00
@blahnice 嗯,是我的错。
|
43
acpp 2013-08-22 16:13:57 +08:00 2
整天瞎j8吐槽的都是一事无成的
|
45
msg7086 2013-08-22 17:53:58 +08:00 1
@kuochung ROR架构更注重开发速度和维护成本而不是运行效率。
在人工贵比天的欧美澳,服务器比人力便宜多了。一个苦工一个月最起码5k$吧,这点钱光托管服务器就能托个10多台了。 全程TDD开发,统一框架结构,就算来了新人也可以很快上手,老员工走了也不怕断头烂尾,也不太怕写错代码出Bug。 当然如果上到脸书的访问量级别又是另当别论。 |
46
feuvan 2013-08-22 18:00:40 +08:00
风格不一致的话是历史问题,这个基本无解了。
因为一开始就是quick and dirty的 |
52
Air_Mu 2013-08-22 22:16:01 +08:00 1
在楼主的努力下,PHP在V2EX的地位上升至少五个百分点。
谢谢楼主 |
54
7sj525bL0Wy7FOx9 2013-08-23 03:13:02 +08:00
你可以自己写个来代替PHP,没人逼你用...
|
55
adqin1984 2013-08-23 10:47:57 +08:00
其实别看那么多函数,那么多功能,常用的其实也就那几个函数,初学者学任何一门语言都不容易,找到学习的门路最重要,而最好的门路就是做实际开发,一边做,一边查阅资料。
|
56
JeremyWei 2013-08-23 13:22:30 +08:00
虽说PHP不是很优雅的语言,but it works,并且它正在变得更好,它现在也有闭包和对元编程的支持。
|
60
sgissb1 2013-08-23 13:44:54 +08:00
|
61
dorentus 2013-08-23 14:25:11 +08:00
啥叫『弱语言』……
Python 是强类型的,比如: a = 1 # 变量 a 的值是一个整数 b = '2' # 变量 b 的值是一个字符串 a + b # 这里会报错 而 PHP、Javascript 这些则不然,比如 Javascript 的 1 + '2' 的计算结果似乎是字符串 '12',PHP 的 1 + '2' 的结果好像是整数 3。 |