t2doo
V2EX  ›  PHP

大家说说 PHP 容易学吗?

  •  
  •   t2doo · Apr 10, 2014 · 12385 views
    This topic created in 4594 days ago, the information mentioned may be changed or developed.
    都说PHP这门语言是dirty and quick,quick我明白是啥意思,可这dirty是神马意思呢?我只会css/jquery/php,我觉得PHP挺好的啊,至少做一个网站平台是没啥问题的,那为啥要说php dirty呢?
    55 replies  •  1970-01-01 08:00:00 +08:00
    messagebus
    messagebus
    Apr 10, 2014 via Android
    1
    .= 虽然不会php,但是php最让我反感的是这句话前边的东西
    NemoAlex
    NemoAlex
    Apr 10, 2014
    2
    PHP 好学是其优点之一
    缺点主要是 API 设计混乱,文档差,语法难看,5以后虽然有面向对象的一些东西加入,但还是没有良好的基因,使得大型项目难以组织
    还有就是用的人水平良莠不齐,一搜什么乱七八糟的都能出来
    t2doo
    t2doo
    OP
    Apr 10, 2014
    3
    感觉javascript比php要dirty多啦,还好有jquery存在,我喜欢php,它让我赚了好多银子
    zythum
    zythum
    Apr 10, 2014❤️1
    4
    @t2doo javascript 其实很干净的。 最少在api设计上。而且限制非常少。很接近lisp。

    你觉得dirty可能是因为做浏览器兼容做恶心了。或者你觉得api设计太少。太多需要自己封装。所以把这些功劳给了jquery.
    zakokun
    zakokun
    Apr 10, 2014
    5
    我觉得php恐怕是最好学的编程语言了...我反正是很感谢php带给我一份舒适的工作
    loading
    loading
    Apr 10, 2014 via iPhone
    6
    学python吧,当然:php是世界上最好的语言没有之一
    oppressed6370
    oppressed6370
    Apr 10, 2014 via iPhone
    7
    学容易,精通难
    jybox
    jybox
    Apr 10, 2014
    8
    @zythum 据说 javascript 的类型系统很混乱,比如 Object 和 Array 区分很模糊,typeof 的结果也不合逻辑,不知道大牛有啥见解。
    zakokun
    zakokun
    Apr 10, 2014
    9
    还有,你这猫好喜感...起司猫吗?
    rannnn
    rannnn
    Apr 10, 2014
    10
    @jybox object和array咋模糊了{} []完全不一样嘛。 typeof除了null和regexp有点诡异
    zythum
    zythum
    Apr 10, 2014❤️1
    11
    @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
    michaelye1988
    Apr 10, 2014
    12
    刚入门PHP,可能是还不习惯,目前我还是喜欢java。
    Sunyanzi
    Sunyanzi
    Apr 10, 2014
    13
    虽然我写 php 写了十好几年 ... 但我依然认为最好学的编程语言是 Python ... php 次之 ...

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

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

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

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

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

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

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

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

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

    Object.isObject
    String.isString
    Number.isNumber

    但是按照这样,undefined, null怎么办....
    Random
    Random
    Apr 11, 2014
    38
    @ichou

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

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

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

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

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

    @johnlui 呵呵
    wssgcg1213
    wssgcg1213
    Apr 12, 2014
    55
    其实js是最依赖宿主环境的语言没有之一, 光论ECMA5标准其实一点也不dirty啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   738 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 19:41 · PVG 03:41 · LAX 11:41 · JFK 14:41
    ♥ Do have faith in what you're doing.