为什么php这么恶心,重复作用的api那么多?

2013-08-21 23:56:32 +08:00
 fucktwice
8090 次点击
所在节点    PHP
61 条回复
clippit
2013-08-22 00:07:36 +08:00
发帖不举例的都是标题党
gDD
2013-08-22 00:10:09 +08:00
楼上说得好,这种没有例子纯吐槽的烂贴比PHP的恶心不知多少,况且我每天写也没觉得有多恶心啊!
andy12530
2013-08-22 00:46:08 +08:00
比如说 isset和empty, requice & include ?
看起来一样,使用起来有时还是有区别的哦。。
saharabear
2013-08-22 01:08:39 +08:00
如果看起来一样,但使用起来有区别,那一定是自己没仔细看文档。比如:

1, require和include本身区别很大,一个执行一个不执行。分别用于文件执行和模板。

2, isset和empty用于处理变量是否设置或者设置了是否为空。

从程序的基本概念上,这是完全不同的。
ETiV
2013-08-22 01:15:48 +08:00
就知道喷喷喷喷喷
birds7
2013-08-22 01:19:14 +08:00
应该不是做技术的在评价一门语言。。。
jybox
2013-08-22 01:32:41 +08:00
http://php.net/manual/en/aliases.php
实在没必要举例了

个人感觉PHP算是流行的语言中唯一一个语法没经过精心设计的
saharabear
2013-08-22 01:45:29 +08:00
@jybox 在API的演进过程中,也许API本身有问题,但是如果完全遵循某种方式,还是没问题的。比如完全用Symfony的模式。

一说“唯一没有语法精心设计的”,我就想起好兄弟perl.
vibbow
2013-08-22 01:59:01 +08:00
@saharabear 还有python, 居然会有大版本严重不向后兼容的情况。
saharabear
2013-08-22 02:15:02 +08:00
@vibbow 嗯,我觉得python不容易也可以理解(虽然有点那啥,是吧)。我没想到的是python会多版本共生(04年开始玩python,从没想过会多版本到今天还共生)
wwqgtxx
2013-08-22 06:23:17 +08:00
@vibbow 但那也是语言进步的代价,Java向后兼容很好,导致大量过时api在语言中存留(特别是集合类库,大量老旧类库),加大了复杂度,也影响到安全性的提高
felix021
2013-08-22 09:04:52 +08:00
@jybox 因为php是一摞一摞的补丁堆起来的。。不过要说没有经过精心设计的流行语言,你也可以把bash算上。
ruchee
2013-08-22 10:34:25 +08:00
@jybox 因为精心设计出来的语言基本都流于学术圈,压根流行不起来,工业上需要的就是能干活的东西,而且需要什么就可以加什么,在你加一点我加一点的过程中,API就混沌了
hanf
2013-08-22 11:18:15 +08:00
php?那个非正交设计的典范?开玩笑。
blahnice
2013-08-22 11:52:58 +08:00
@saharabear
『1, require和include本身区别很大,一个执行一个不执行。分别用于文件执行和模板。』

您真敢说啊。。
kingwkb
2013-08-22 11:59:29 +08:00
@saharabear 1, require和include本身区别很大,一个执行一个不执行。分别用于文件执行和模板。

这个真的不对

我来说一个吧,parse_str 使用 传入参数来获取返回值,常用的函数中真独特
saharabear
2013-08-22 12:00:03 +08:00
@blahnice 您要较真,那就看文档去,require和include区别的确很大。后面这句“用于文件执行和模板”虽然不严谨,但我要表达的意思还是当用了include的时候,更适合于把php当模板的过程,require的时候,更适合用于普通文件的“包含并执行”的概念。 并且require和include大部分情况下都比require_once和include_once要好,因为php不用到处找是不是已经require过了。这是我要表达的,如果用词不准,那是我的问题,我改。
blahnice
2013-08-22 12:01:27 +08:00
@saharabear 你确定一个执行一个不执行?
saharabear
2013-08-22 12:03:46 +08:00
@kingwkb 嗯嗯,我的描述有问题,我的意思还是一个出了问题会执行,一个不出问题会执行,为了习惯,所以在模板中更常用include在其他地方更多用require,require出问题不执行,include会执行(我觉得我表达能力有问题了)

另外,parse_str的问题,你是说它必须把参数传进去然后获取返回值吗?这个的确独特,但我觉得还好。
saharabear
2013-08-22 12:05:00 +08:00
@blahnice 我的表达可能还是有总是,一个出了错会继续执行,一个出了错不继续执行。。。如果我表达得总是不对,我最好去睡一觉,昨天到现在有点醉(喝多了),还没清醒。但我明白这个区别,一个出错还会跑下去,一个出了错不会跑下去。。。。。(error和warning)

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

https://www.v2ex.com/t/79807

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

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

© 2021 V2EX