V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
t2doo
V2EX  ›  PHP

大家说说 PHP 容易学吗?

  •  
  •   t2doo · 2014-04-10 16:40:28 +08:00 · 10460 次点击
    这是一个创建于 3662 天前的主题,其中的信息可能已经有所发展或是发生改变。
    都说PHP这门语言是dirty and quick,quick我明白是啥意思,可这dirty是神马意思呢?我只会css/jquery/php,我觉得PHP挺好的啊,至少做一个网站平台是没啥问题的,那为啥要说php dirty呢?
    55 条回复    1970-01-01 08:00:00 +08:00
    ccbikai
        1
    ccbikai  
       2014-04-10 16:48:54 +08:00 via Android
    .= 虽然不会php,但是php最让我反感的是这句话前边的东西
    NemoAlex
        2
    NemoAlex  
       2014-04-10 16:57:04 +08:00
    PHP 好学是其优点之一
    缺点主要是 API 设计混乱,文档差,语法难看,5以后虽然有面向对象的一些东西加入,但还是没有良好的基因,使得大型项目难以组织
    还有就是用的人水平良莠不齐,一搜什么乱七八糟的都能出来
    t2doo
        3
    t2doo  
    OP
       2014-04-10 17:18:45 +08:00
    感觉javascript比php要dirty多啦,还好有jquery存在,我喜欢php,它让我赚了好多银子
    zythum
        4
    zythum  
       2014-04-10 19:00:50 +08:00   ❤️ 1
    @t2doo javascript 其实很干净的。 最少在api设计上。而且限制非常少。很接近lisp。

    你觉得dirty可能是因为做浏览器兼容做恶心了。或者你觉得api设计太少。太多需要自己封装。所以把这些功劳给了jquery.
    zakokun
        5
    zakokun  
       2014-04-10 19:07:26 +08:00
    我觉得php恐怕是最好学的编程语言了...我反正是很感谢php带给我一份舒适的工作
    loading
        6
    loading  
       2014-04-10 19:13:40 +08:00 via iPhone
    学python吧,当然:php是世界上最好的语言没有之一
    cyokvip
        7
    cyokvip  
       2014-04-10 19:42:54 +08:00 via iPhone
    学容易,精通难
    jybox
        8
    jybox  
       2014-04-10 20:18:18 +08:00
    @zythum 据说 javascript 的类型系统很混乱,比如 Object 和 Array 区分很模糊,typeof 的结果也不合逻辑,不知道大牛有啥见解。
    zakokun
        9
    zakokun  
       2014-04-10 20:35:25 +08:00
    还有,你这猫好喜感...起司猫吗?
    rannnn
        10
    rannnn  
       2014-04-10 20:54:23 +08:00
    @jybox object和array咋模糊了{} []完全不一样嘛。 typeof除了null和regexp有点诡异
    zythum
        11
    zythum  
       2014-04-10 20:58:40 +08:00   ❤️ 1
    @jybox
    Array 是数组啊。 Object是对象。Array 继承 Object。主要是js没有set,或者map这样的数据接口。所以只能用Object来做这个事情。
    你觉得模糊可能是因为 [1,2,3][0] 和 ({a:1,b:2})['a'] 看上去都是中括号。但是你看下php,set,map,array 都是用array。难道不觉得更加混淆

    typof 来说,对于基本都是对的。number, undefined, boolean, string, null.
    对坑爹的是object 和 function.

    还有就是 typeof '' === 'string', typeof new String === 'object' 这样的东西。
    但是如果从原来上说是对的。 一切都是new做的怪。
    说实话。如果真的要像lisp。那应该是没有new这样东西的。估计当时PM说,java现在火,设计api要像java...所以...
    michaelye1988
        12
    michaelye1988  
       2014-04-10 21:01:21 +08:00
    刚入门PHP,可能是还不习惯,目前我还是喜欢java。
    Sunyanzi
        13
    Sunyanzi  
       2014-04-10 21:11:09 +08:00
    虽然我写 php 写了十好几年 ... 但我依然认为最好学的编程语言是 Python ... php 次之 ...

    当然这只是说上手难度 ... 往精了走哪个都不容易 ...
    towser
        14
    towser  
       2014-04-10 22:03:26 +08:00
    学到凑凑合合弄个东西出来容易,学好它难,比JAVA难。
    hitsmaxft
        15
    hitsmaxft  
       2014-04-10 22:25:39 +08:00
    行百里者半九十, 这句话很适合phper
    pagecho
        16
    pagecho  
       2014-04-10 22:27:21 +08:00
    毕业设计是php做一个租赁系统,之前没学过php,赶鸭子上架,代码被我写得邋遢死了。。。还好老师不看我代码。这种很敷衍的写法……我自己都要被这堆代码笑死了。
    hitsmaxft
        17
    hitsmaxft  
       2014-04-10 22:34:35 +08:00
    面试phper可以这么面

    1. 请问你用的php是什么版本号? 能答得上, 恭喜, 8k月薪
    不用2了

    现在你们知道php多么良莠不齐了吧
    gaicitadie
        18
    gaicitadie  
       2014-04-10 22:34:44 +08:00 via Android
    php那一堆函数命名方式,参数位置,没有规律,必须死记硬背。还好有phpstorm。

    跑个题,jetbrains的ide能颠覆人对语言的看法,用了phpstorm以后,php仿佛变成了另一个语言,美妙而富有表现力
    baocaixiong
        19
    baocaixiong  
       2014-04-10 22:38:21 +08:00
    @gaicitadie explode 等等函数的位置,像delimiter各种一下在前一下在后的。昏呼呼的。。
    mikej
        20
    mikej  
       2014-04-10 22:50:22 +08:00
    不知道从哪儿看到的话:每种身份下都有不同的阶级。
    riaqn
        21
    riaqn  
       2014-04-10 23:02:18 +08:00
    不是好不好学,而是是否值得去学。我认为对于现在还没有接触php的开发者,就不用特意去学了。
    jacy
        22
    jacy  
       2014-04-10 23:08:41 +08:00
    我编程从basic入门的,但是学网页却没从asp开始,因为我觉得php更好懂。。
    raincious
        23
    raincious  
       2014-04-10 23:11:50 +08:00
    PHP现在就像是一堆各种东西拼凑出来的(本来就是),所以出了个SPL来解决这一系列的问题。

    很多问题很明显,比如isset()吧,可以(但我有些强迫症的认为应该是isSet,虽然函数名小写化之后是一样的),但是为什么empty()就不是isEmpty?。

    另外php函数取名也不都是规范的,各种扩展有各自的规范就不说了,比如is_array这样的取名方式,突然来一个gettype就一点也不好玩。
    Precious
        24
    Precious  
       2014-04-10 23:44:15 +08:00
    说dirty是因为最开始迁到代码里,没有和应用分层设计
    还有历史遗留原因下各种奇怪命名的函数 (其实C语言也是啊)
    还有当年门槛低,项目的各种遗留问题,来一个人加一个功能,必然不好看啊
    你看现在的PHP框架,其实代码写得也很清爽了啊
    PHP不适合现在的分布式大规模计算,只能个人、小企业建站,必然阻扰他的发展
    wwek
        25
    wwek  
       2014-04-10 23:49:24 +08:00
    php容易学,这是毋庸置疑的。
    没有哪一门计算机语言是完美的。
    更具自己的场景选语言。

    php不适合做分布式计算? 你不能用任何一门语言完成所有的工作。 分布式计算中,php做数据呈现不就非常好。

    不知道楼上的说 php只能个人,中小企业。笑话··· 。全球大互联网公司几乎每家都在用php啊。
    jakwings
        26
    jakwings  
       2014-04-11 00:14:45 +08:00
    @rannnn @jybox @zythum ECMAScript6 似乎要实现 typeof null === 'null'
    其它非 primitive 类型的变量,看来以后都要继续得到 'object' 了(其实挺合理的了)。
    用较新版的 node 测试:
    node --harmony-typeof -e 'console.log(typeof null)'
    jakwings
        27
    jakwings  
       2014-04-11 00:18:02 +08:00
    @jakwings 伴随着 typeof 的改变,还有 Array.isArray 来判断是否为数组。
    yakczh
        28
    yakczh  
       2014-04-11 00:34:18 +08:00   ❤️ 1
    容易学的东西大家都会,紧接着市场很快就饱和,平均待遇就被拉低 你要待遇高,得学一门不容易学的语言, 比如c/c++ 之类的
    jeffw
        29
    jeffw  
       2014-04-11 00:38:09 +08:00
    我觉得还是蛮好学的嘛
    sunshineg
        30
    sunshineg  
       2014-04-11 00:47:00 +08:00
    赞同 @cyokvip ,PHP上手快,但是成为大神的比较难....

    @楼主,前几天也有用户在sf上问到类似问题,希望答案有帮助 :) http://segmentfault.com/q/1010000000461429
    davidyin
        31
    davidyin  
       2014-04-11 02:39:27 +08:00
    易学难精
    rannnn
        32
    rannnn  
       2014-04-11 08:03:13 +08:00
    @jakwings typeof null === 'null'提案被拒绝了,不排除未来会从V8移除,所以最好不要依赖
    t2doo
        33
    t2doo  
    OP
       2014-04-11 09:14:21 +08:00
    @sunshineg 发现一个不错的网站:)
    belin520
        34
    belin520  
       2014-04-11 09:15:57 +08:00
    所有语言精通都难
    所谓万事开头难,你现在只是在寻找你认为容易开头的一门语言
    其实只要掌握它,你就是master
    你甚至能从中体会到别人领悟不到的东西
    又何谓哪种语言dirty
    bakac
        35
    bakac  
       2014-04-11 09:34:31 +08:00
    我倒是认为PHP的官方文档和python的一样好,而且最重要是文档下面的评论区旺旺有更详细的使用示例,相比之下某GO语言的文档只是扔出源代码让你自己读 2333333.
    另外JS的自由度很大,也非常之简洁
    ichou
        36
    ichou  
       2014-04-11 10:23:41 +08:00
    PHP 入门容易是因为它的内置方法多入牛毛吧 想要什么几乎都有
    PHP 难学也是因为它的内置方法多入牛毛吧 用了大半辈子还是离不开查手册
    以前有个同事没事儿就翻 php 的函数看,后来他白头到老了,阿门
    zythum
        37
    zythum  
       2014-04-11 10:29:06 +08:00
    @jakwings
    话说以后会不会有

    Object.isObject
    String.isString
    Number.isNumber

    但是按照这样,undefined, null怎么办....
    Random
        38
    Random  
       2014-04-11 10:41:38 +08:00
    @ichou

    拼标准库的内置接口的话看和谁比了.

    和lua、 javascript这些比当然多多了.

    但是和自带电池的语言比如python、ruby比, php又少多了, 甚至未必能拼过Go.
    wdd2007
        39
    wdd2007  
       2014-04-11 10:47:21 +08:00
    写出来容易,写好难。
    loserwn
        40
    loserwn  
       2014-04-11 11:36:44 +08:00
    看对语言的态度了。语言无非是工具,拿来用的。
    好用,能用的顺手,最重要。
    好与不好,都是对于自己。不用太在乎别人的感受。
    jakwings
        41
    jakwings  
       2014-04-11 12:07:08 +08:00
    @zythum 或许,不过我估计有 isArray 就能够简化很多代码了(Polyfill 也好容易写)。再搞下去 Javascript 都要变 PHP 了。null 和 undefined 可以直接 === 判断。数字的话一般都是(从字符串转数字)判断有穷数字,直接 isFinite(x) ,或者干脆 typeof 。
    Javascript 就是个坑!Orz 算了,用 polyfill 好了……Orz Orz
    NemoAlex
        42
    NemoAlex  
       2014-04-11 13:43:32 +08:00
    看到你们说 JavaScript dirty
    前端的东西有 TM 干净的么
    哈哈哈
    hourui
        43
    hourui  
       2014-04-11 15:59:35 +08:00
    语言只是一个工具。
    dirty与否,是取决于用工具的人。
    Narcissu5
        44
    Narcissu5  
       2014-04-11 16:42:00 +08:00
    居然没有人提到php的性能问题,还有进程模型
    ren2881971
        45
    ren2881971  
       2014-04-11 17:01:03 +08:00
    我只说一句 Java是最好的语言。 你们吵吧 哈哈哈
    h2ero
        46
    h2ero  
       2014-04-11 17:57:36 +08:00
    我只想说php的文档很好。
    zxx
        47
    zxx  
       2014-04-11 18:07:29 +08:00
    @zakokun 我断断续续自学了10年 还没入门
    lincanbin
        48
    lincanbin  
       2014-04-11 20:16:23 +08:00
    @Narcissu5 现在Web开发性能瓶颈一般在数据库那块,一般是I/O
    解释型语言和编译型语言实际用起来差别不大。
    poboy
        49
    poboy  
       2014-04-11 21:34:47 +08:00
    可能是用习惯了吧,先入为主,别的语言也学过java,python,还是喜欢php,虽然python简洁,但是他的缩进。。。
    thcode
        50
    thcode  
       2014-04-11 23:07:53 +08:00
    @zythum 朱一你博客域名到期了啊
    xcc7624
        51
    xcc7624  
       2014-04-12 00:33:37 +08:00
    这种问题,在网上经常看到,语言重要,但是最重要的还是人,三流的程序员就算用了lisp就能写出好的代码出来吗?照样dirty。个人感觉,根据自身水平和要解决的任务的情况选择合适的编程语言。
    pubby
        52
    pubby  
       2014-04-12 00:50:05 +08:00   ❤️ 1
    看到有人提php性能问题,那要看用来干什么

    对网站来说,能达到每秒20个请求,就能支撑一个日pv 100万的网站

    如果达不到,那瓶颈也绝对不在php本身。
    johnlui
        53
    johnlui  
       2014-04-12 01:19:46 +08:00
    @zythum 接近lisp这话好像是我说的?别打我我什么都不知道~~~ :)
    zythum
        54
    zythum  
       2014-04-12 09:39:55 +08:00
    @thcode 谢谢 知道了

    @johnlui 呵呵
    wssgcg1213
        55
    wssgcg1213  
       2014-04-12 15:20:17 +08:00
    其实js是最依赖宿主环境的语言没有之一, 光论ECMA5标准其实一点也不dirty啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3139 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:53 · PVG 18:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.