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

想学 PHP ,哪本书入门比较好

  •  
  •   v2defy · 2020-11-07 18:21:42 +08:00 · 5743 次点击
    这是一个创建于 1237 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想短平快的写个很小的网站

    56 条回复    2020-11-09 16:57:29 +08:00
    widdy
        1
    widdy  
       2020-11-07 18:24:06 +08:00   ❤️ 1
    cmdOptionKana
        2
    cmdOptionKana  
       2020-11-07 18:46:07 +08:00   ❤️ 2
    时代变了,以前 PHP 快是因为可以直接嵌在 html 里面搞事情,现在前端发展出来的东西已经比 php 好用,同时 php 在后端又向 java 那种大而全的方向发展…… 小网站用 Node.js, Python, Go 都蛮好的,其中 Node.js 学习成本最低。
    Mac
        3
    Mac  
       2020-11-07 18:46:08 +08:00 via Android
    不用学,抄一个的过程中看看文档足够了
    v2defy
        4
    v2defy  
    OP
       2020-11-07 18:54:33 +08:00 via iPhone
    @cmdOptionKana 老哥你成功说服了我
    mitu9527
        5
    mitu9527  
       2020-11-07 19:03:57 +08:00   ❤️ 1
    @v2defy 如果打算做 Web 服务端开发且觉得 PHP 比较 Low,那就选 Go 吧,个人并不推荐 Python 和 Node 。
    IGJacklove
        6
    IGJacklove  
       2020-11-07 19:09:08 +08:00 via Android
    50 年入日军
    v2defy
        7
    v2defy  
    OP
       2020-11-07 19:11:56 +08:00 via iPhone
    @mitu9527 为什么呢
    xiaoriri666
        8
    xiaoriri666  
       2020-11-07 19:14:53 +08:00
    别听他们瞎说,PHP 还是老大
    taxiaohaohhh
        9
    taxiaohaohhh  
       2020-11-07 19:16:46 +08:00 via Android
    写网站 node 更合适
    Rhilip
        10
    Rhilip  
       2020-11-07 19:20:13 +08:00   ❤️ 1
    我也赞同 PHP 不用学,不用框架用文件路由的话随便搞,反正自己玩玩。
    用框架的话,再看框架的文档怎么写的就好。

    但在没有任何编程基础的情况下,这并不意味着就转 Node.js, Python, Go 了,毕竟 lz 的要求是“短平快”。
    如果 lz 已经有上面三个的编程经验就还是沿着已经学过的技术栈好些。
    Varobjs
        11
    Varobjs  
       2020-11-07 19:28:39 +08:00   ❤️ 1
    不用学,学了也找不到工作
    justfun
        12
    justfun  
       2020-11-07 19:34:48 +08:00
    php 这么惨吗... 。求问 php 转啥好
    mitu9527
        13
    mitu9527  
       2020-11-07 19:44:51 +08:00   ❤️ 20
    @v2defy 先声明一下,我自己是名 PHPer 。就 Web 服务端开发这块来说,Java 的综合实力无疑是最强的,超大型 Web 项目和大型 Web 项目开发,Java 绝对是首选,甚至可以说是唯一的选择,因为不但语言本身要够强,生态也要够完善。中型、小型和微型 Web 项目开发,其实 PHP 、Python 、Node 和 Go 都差不多,每个语言都说自己比别的优秀,其实都有优点和缺点。PHP 占有率高,但不够“新”;而 Python 的主要战场从来就不是 Web 服务端; Node 从 2012 年开始凭借性能想取代 PHP,结果就现在来看,性能优势已经不再,生态方面也没啥优势,最尴尬的是 Node 的原作者都想搞一个新的 Deno 来取代 Node,所以前景并没有想象中那么好,现在 Node 最大的优势其实是前后端语法一样,但这个优势真的是仁者见仁,智者见智了。Go 和当年的 Node 一样,最近几年很强势,但毕竟很新,其实招聘需求并没有那么大,生态并没有很完善,而且很多东西都在疯狂的进行淘汰,你花费的大量时间学的东西,可能很快就会被淘汰掉了。

    Java 的饱和度非常高,.Net Core 在国内很小众,PHP 很普通,Python 的主要战场不在 Web,Node 前景并没有想想中的好,Go 太“新”。如果你将来要参与大型和超大型 Web 项目,那就 Java ;但如果你刚二十出头,时间比较多,我比较建议 Go 。
    bzj
        14
    bzj  
       2020-11-07 20:10:10 +08:00
    @mitu9527

    学 Go,看哪本书比较好
    mitu9527
        15
    mitu9527  
       2020-11-07 20:49:20 +08:00
    @bzj 如果打算深入学习,就官方文档;如果打算入门,随便一本书都差不多,等将来你回过头再看,其实没差多少。
    agdhole
        16
    agdhole  
       2020-11-07 21:11:30 +08:00
    13 楼说的很有道理
    garywhat
        17
    garywhat  
       2020-11-07 22:51:03 +08:00 via Android
    同 感同身受🙃
    garywhat
        18
    garywhat  
       2020-11-07 22:51:33 +08:00 via Android
    @mitu9527 同 感同身受🙃
    sytnishizuiai
        19
    sytnishizuiai  
       2020-11-07 22:52:58 +08:00
    你要找工作,确实 java 更好点,但是自己随便做做私人网站,兴趣类的,php 更好点,速度快而且方便。
    jation
        20
    jation  
       2020-11-07 23:18:04 +08:00
    ganymedenil590
        21
    ganymedenil590  
       2020-11-07 23:30:18 +08:00 via Android
    lscexpress
        22
    lscexpress  
       2020-11-08 00:59:40 +08:00   ❤️ 2
    说个题外话,一般来问学编程语言该怎么入门的,通常都入不了门。
    onion83
        23
    onion83  
       2020-11-08 03:32:55 +08:00   ❤️ 18
    从 2 楼开始就没一个人审题的, 楼主既然都明确语言了, 并且明白了需求, 你们又跑出来说这个语言好, 那个语言牛逼干什么呢?

    以本人 10 年+的工作经历作为背书。 哥凭着这门手艺从小公司一直到 BAT 都转过一圈 , 可以给大家传达几个观点:

    - PHP 就是开发 Web 最快的语言,没有之一

    - 项目的成功和开发语言无关: 天时、地利、人和

    - 工作是否好找,薪资的高低和市场需求有关和语言无关。这里点名 Java , 用的人太多需要背太多题目, 就让他们自行内卷吧,不要羡慕他们的工资稍微高一点,头发少一点,都是加班加出来的。

    - 培训班的量产程序员,一定程度上抹黑了这门语言,不过你放心,只要有就业市场,无论 java\go\javascript\大数据\AI 全部都可以量产,以至于 HR 和面试官不得不将学历门槛提高。

    - 作为一门 "古老" 语言有社区有大量成熟框架开箱即用的产品。主流的第三方服务也会有相应的 SDK,也有诸如 Swoole/HHVM/Zephir 等 hack 作为生态补充,加上 PHP 8 的 JIT 可以说未来非常可期。

    以下是我的学习体会:

    1 、看官方文档 https://www.php.net/manual/zh 是最好的入门手册, 这是一门测试驱动的语言, 多看例子多看评论即可

    2 、非得看纸质书的话, 我是靠这本 Oreilly 《 PHP 编程入门》,网上应该能找到电子版。http://www.oreilly.com.cn/index.php?func=book&isbn=978-7-121-25312-6

    3 、找一个开源项目融入进去,以前最火的就是改 Discuz 论坛,沿着别人的代码和思路做点小玩意,找找成就感。

    4 、接下来最好找个 Jobs 看一下什么就生产环境和商业环境,顺便看看这行究竟能赚多少钱。

    5 、接下来的发展,就看个人造化了,看看 大 C 、laruence 、韩天峰如何低调前行,成为这一行的翘楚吧。

    6 、PHP 语言是用 C 写的 GNU 的生态也是 C/C ++ ,如果真的感兴趣,这里有更开阔的天地和空间。总比去鼓捣虚拟机,讨论如何优雅地垃圾回收有意思多了吧?

    dartabe
        24
    dartabe  
       2020-11-08 04:45:42 +08:00
    小网站我咋感觉 react/vue + firebase 这种是最快的呢 求解惑
    kajweb
        25
    kajweb  
       2020-11-08 06:36:40 +08:00
    @xiaoriri666 找不到工作了哥……
    kajweb
        26
    kajweb  
       2020-11-08 06:37:46 +08:00
    @dartabe 表示没听过 firebase
    v2defy
        27
    v2defy  
    OP
       2020-11-08 07:26:56 +08:00 via iPhone   ❤️ 1
    @onion83 可以,我又被说服了🤣

    那就学一学吧,不学没好处,学了没坏处,感谢老哥👍👍
    loading
        28
    loading  
       2020-11-08 08:28:37 +08:00 via Android
    @dartabe firebase 不能访问吧,求替代。
    cmdOptionKana
        29
    cmdOptionKana  
       2020-11-08 09:36:36 +08:00
    @onion83 可能是我审题错了吧,我认为楼主 “想短平快的写个很小的网站” 的需求大于 “想学 PHP”,php 只是工具不是楼主的最终目的。

    而如今想 “快”,明显学 Node.js 比学 php 更快,因为 js 是必学的,学 Node.js 则不需要再花时间多学一个语言。
    xingjue
        30
    xingjue  
       2020-11-08 09:37:06 +08:00
    说句实话 php 人力成本低,开发效率高,中小公司的不二之选。node 招后端太难,golang 生态不行,要价太高,用 php 多加几台机器不香嘛
    lepig
        31
    lepig  
       2020-11-08 10:25:20 +08:00
    不推荐 PHP 。
    原因:又多了一个和我抢饭碗的人
    buffzty
        32
    buffzty  
       2020-11-08 10:56:05 +08:00
    别看官方文档,内容太多了.可以看 php 圣经 虽然是 08 年的书 我觉得学基础看经典就行,不必要追求新. 或者看韩顺平很多年前的视频. 然后去菜鸟教程看下 php7 更新的内容.再去官网看一下从 7.0 开始的 change log. 下载一个文档 chm 用来查函数. 用 php7.4 纯面向对象方式 只写 api 项目. 可以说和 java 写出来的代码几乎一模一样. 你学会了 php 就等于学会了 java
    dartabe
        33
    dartabe  
       2020-11-08 11:05:56 +08:00   ❤️ 1
    @loading LeanCloud 或者 AWS Amplify?

    我不太懂后端 所以这种带数据库 登陆认证 外加 自定义函数的感觉很好用
    ruchee
        34
    ruchee  
       2020-11-08 12:11:28 +08:00   ❤️ 4
    别听他们瞎扯,凡是吹 Python 、Go 的都是键盘侠,听他们的真有可能饿死在大街上,PHP 依然是 Web 后端需求最大、开发效率最高的语言,不论是做网站还是做 APP 的接口开发。

    书只需要两本:《 PHP 和 MySQL Web 开发(原书第 5 版)》、《深入 PHP 面向对象、模式与实践(第 5 版)》,前者拿来入门,后者搞定 OOP 。国产的书和资料少看,包括那个 ThinkPHP 框架也是,除了把你带歪,没啥价值

    最大的宝库是官方文档,可以当字典查,也可以当书看,尤其多关注每个大版本的新特性说明

    PHP 一直在不断变得更加强大、更加现代化,只有不懂的键盘侠天天以为它要挂了

    框架后面可以学学 Laravel,虽然越来越臃肿,却可以给你树立起良好的工程化思想。学腻了就去了解下 Ruby 和 Rails 吧,这才是真正的好东西,哈哈
    matatabi
        35
    matatabi  
       2020-11-08 12:52:14 +08:00
    PHP 从入门到精通(第 5 版)
    THP301
        36
    THP301  
       2020-11-08 12:56:03 +08:00
    官方有文档就直接看官方的,不要碰任何二道贩子
    charlie21
        37
    charlie21  
       2020-11-08 14:58:30 +08:00
    给我 10 块,我给你写。节省你 100 小时的学习时间
    hejingyuan199
        38
    hejingyuan199  
       2020-11-08 15:32:46 +08:00
    https://laravel-china.github.io/php-the-right-way/

    php 如果看看基本概念,这本书也还可以吧?
    PHP 之道

    看到没人推荐?
    mitu9527
        39
    mitu9527  
       2020-11-08 15:45:57 +08:00
    @hejingyuan199 这本书可不算入门书籍,有一定经验的人看收获才比较大。
    janus77
        40
    janus77  
       2020-11-08 18:11:44 +08:00
    根据楼主左右摇摆的态度来看,我觉得你并没有想要将其作为你的核心技能来考虑,而只是一个边缘技能(以后是不是核心不好说)。所以我建议你可以学。
    skypyb
        41
    skypyb  
       2020-11-08 19:02:09 +08:00
    提问: PHP 和 ROR 谁开发 web 更快
    maigebaoer
        42
    maigebaoer  
       2020-11-08 19:31:34 +08:00 via Android
    php 入门随便搞,到最后还是得回到 os 网络和代码架构
    chenyu0532
        43
    chenyu0532  
       2020-11-08 20:16:08 +08:00
    怎么谁来提问怎么学习,都有一群人在骂这个垃圾,那个 nb,你们已经 nb 到了否认一门语言的程度了么。。还来一堆洋洋洒洒的分析,不蛋痛么
    sockball07
        44
    sockball07  
       2020-11-08 20:33:58 +08:00
    @onion83 #23 我感觉真能啃下手册的也是挺厉害了 如果只是看官方写的倒没什么 关键就是例子和评论...总能出现更多的东西 结果就是非常非常慢...
    yekern
        45
    yekern  
       2020-11-08 22:40:45 +08:00
    PHPer 来回答 如果你有 类 C 语言编程经验 不需要学, 找一个框架 跟着框架文档就够了 基础语法菜鸟教程 W3cshool 就够了。这样就可以满足你的需求。 如果你想要深入学 PHP 那么学的就多了 PHP+HTML+CSS+javascipt+redis+Mongodb+Sphinx+MQ+mysql(Pgsql)+nginx+slb+es+webpack+vue+react+composer 等等你会抓狂的。然后你会发现有些场景还是不能解决遇到的问题 这个时候还要去看 PHP 的源码 然后开发 C 扩展 或者配合其他语言来实现 比如 GO C++等

    PHP 作为一门编程语言是挺容易的 适合于快速开发网站 API 等 但是学完 PHP 不带表就学会了整个后端 后端知识体系涉及到东西太多了。

    一般新人不建议入坑。
    lygmqkl
        46
    lygmqkl  
       2020-11-08 22:53:36 +08:00
    要么 PHP 要么 GO 别信那些所谓的 50 年 入国军, 编程重思维,我从 php 起步, 后面进了 DBA 侧面, 现在自学 MVVM,我并没有遇到什么门槛,语法看下,然后熟悉下每个语言的运行逻辑和特性,基本都能适应, 关键是你能否学到适合你的编程思维,仅此而已

    每个语言都差不多,相互看不起其实也没啥,在国内,最大的问题在于你去工作了,能否坚持一条路走到底走到精通这个层面上,多半是一家公司一套技术,甚至一个项目一套技术。。想开点。
    rophie123
        47
    rophie123  
       2020-11-08 23:13:09 +08:00 via Android
    php 挺好,也挺坑
    CismonX
        48
    CismonX  
       2020-11-09 00:11:47 +08:00
    @onion83 #23

    第 6 条说的 GNU 生态应该怎么理解?

    首先 PHP 不是一个 GNU 项目,其次 PHP License 和 GPL 不兼容。我想不到这两者之间能有什么必然关联,还请指教。
    laravel
        49
    laravel  
       2020-11-09 00:15:04 +08:00
    《 php 从入门到放弃》、《 php 从入门到失业》
    pigzzz
        50
    pigzzz  
       2020-11-09 09:35:01 +08:00
    50 年入国军,有被笑到,哪些吹嘘 node 的,还没饿死在找工作的路上?
    shellic
        51
    shellic  
       2020-11-09 09:58:24 +08:00
    别瞎听别人说去搞什么 node ;后端语言的生态比什么都重要,如果你资质普通在 web 方面 java 、php 绝对比 node 、python 更靠谱,每个语言都有合适自己的场景,那些逮着一个语言可劲儿吹的不是蠢就是坏
    yutonliu
        52
    yutonliu  
       2020-11-09 10:14:47 +08:00
    细说 PHP
    zarte
        53
    zarte  
       2020-11-09 10:43:35 +08:00
    BV1Px411a7n9 照着抄就好了
    cmdOptionKana
        54
    cmdOptionKana  
       2020-11-09 10:47:50 +08:00
    @pigzzz 就本贴正文来看,楼主只是想做个很小的网站,而不是想找工作。如果目的是找工作,我不推荐 node,但如果想以最快的速度做一个很小的网站,node 比 php 快。


    @shellic 做一个很小的网站,完全没有到谈生态、资质的程度,注意是一个很小的网站,用任何主流语言做都差别不大,我推荐 node 仅仅因为学习成本最低。
    cnrting
        55
    cnrting  
       2020-11-09 12:08:11 +08:00 via iPhone
    卖课的怎么还没来
    elintwenty
        56
    elintwenty  
       2020-11-09 16:57:29 +08:00
    有一说一,根据实际需求选择技术选型,如果想做一个短平快的网站,PHP 还是最合适的语言之一,学习成本低、社区庞大、运维方便、天然支持前后端不分离(虽然不利于拓展与长期维护,但是适用于短平快)。不过因为 PHP 的学习成本太低了,根据不需要书吧,随便写小网站直接上手就可以了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1001 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:53 · PVG 03:53 · LAX 12:53 · JFK 15:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.