你是怎么得知 PHP 的?#
这个问题需要你自己来回答。
- 从同学那听说的。
- 选课时候发现的。
- 听说做互联网开发赚钱,上网搜索到的。
- 或者是《年薪百万程序员教你两个小时写出淘宝网站》←_←
不管你了解的途径如何,有一个梗你需要了解一下。
PHP 是最好的语言
当然,这是一个梗,你需要用审视的眼光去看。
PHP 能做什么?#
既然你知道了 PHP,那么你知道 PHP 是做什么的吗?
我们来看看 PHP 的版本更新历史:
- PHP 5 是 2004 年诞生的。
- PHP 5.3 是 2009 年。
- PHP 5.4 是 2012 年。
我所了解的,PHP 5.3 之后这门语言基本上没发生巨大的变化,即使到现在的 PHP 7 引入了很多新语言特性,PHP 的目标定位还是没有明显的变化。
所以,你需要知道的是,PHP 的定位仍然是网页(2004 ~ 2009 年那个时候的网页),而不是目前某些实时性特别强的游戏或者直播等等。
不要认为这个定位太古老了,我们现在用的绝大多数网站 PHP 都可以胜任。如果你想从零开始开发一个同样功能的网站,使用 PHP 往往会比其他语言开发时间短。
使用 PHP 的网站#
- WordPress:WordPress 是 PHP 最有名的开源项目,通常是作为个人博客使用,可以通过一些免费的插件把它改成论坛。
PHP?还是其他语言?#
你会在网上看到一些关于 PHP、Java、Python、ASP.NET、Ruby、Node.js、Golang 等的比较
PHP 优点#
- PHP 是专门为网页开发设计的语言,PHP 对于网页开发比其他语言方便。
- PHP 是弱类型解释型语言,开发效率高。
- PHP 有广大的开源社区,有很多现成的可以免费使用的产品。
- PHP 的代码修改即可生效,可以轻松地基于已有项目修改。
- PHP 安装简单,入门快,开发容易,部署方便。
PHP 缺点#
- PHP 的执行效率不如其他语言。不应该使用 PHP 执行大量计算任务。
- PHP 不支持多线程,一次请求就是按顺序执行代码直到完成。其他语言可以利用多线程做一些其他的事。
- PHP 高并发性不如其他语言。不适用于突然涌入大量用户的场景,比如双十一抢购,比如抢票、抢课之类的。
- PHP 不支持长连接,想做实时聊天需要不断地每隔几秒发送请求。
- PHP 对流的支持不好,不可以做直播。
请注意这些缺点,他们本来就不符合 PHP 的定位,所以这算是强人所难。使用 PHP 的时候要扬长避短,干不了的事可以使用其他语言开发,多语言合作一下就可以了,不用非得井水不犯河水。
例如#
如果你仅仅想建一个论坛或者博客,PHP 可行。用 WordPress,非常成熟,大量插件,不必自己开发。一个普通的云主机几百并发没什么问题。
如果你是要为某公司做一个主页,PHP 可行。你可以基于 WordPress 自己开发或修改一套主题,PHP 易于开发、易于修改的特性就体现出来了。
如果你是要为某公司做一个管理系统之类的,这是 PHP 常见的用途。
如果你想单靠 PHP 语言做一个大容量高并发的网页,至少目前不太可能了。不过你可以把网页部分交给 PHP,同时使用一些缓存技术。而像抢课、抢票这类并发要求高的 API 交给 Java。这样既有开发效率,又满足了要求,岂不美哉。
你为什么要学习 PHP?#
为了赚钱#
如果你想学 PHP,从而去大公司找工作,我并不推荐。大公司通常不会以 PHP 作为主要技术栈。
但也并不是用不到 PHP,那种短期的活动,紧急上线,不久后就下线,用 PHP 开发很方便。由于 PHP 易于学习,通常了解其他语言的话都可以很快入门,所以不会专门招收 PHP 程序员。
小公司会使用 PHP,因为 PHP 本身的特性,开发网站十分方便,遇到改需求的情况也比较容易应对。
另外用 PHP 写一些 WordPress、DiscuzX 插件或主题来赚一些小钱也是可行的。
为了兴趣#
自己用 PHP 写一些小工具处理互联网相关的东西真的很方便。
人生苦短,我用 Python
Life Is Short, Use Python.
比如计算一段字符串的 MD5,PHP 比 Python 要容易的多。PHP 把所有常用的函数全部都暴露在全局中,需要使用随时可以调用,有些小工具用 PHP 写要比 Python 容易。
如何学习 PHP?#
- 我是零基础小白:只要你是真的想学,没问题。
- 我有编程基础
- 我只会类似谭浩强那套 C 语言:虽然被谭坑得挺惨,但是那些东西没有白学。
- 我有网络开发基础:学过其他语言的网络编程,PHP 简直再简单不过了。
我建议带着目的去学习,就是
我有一个想法,我要做出一个这样的东西。为了达成这个目标,我需要什么工具,然后去学习这些工具。结果发现又需要使用另外的工具,再去学习另外的工具。
注意:每学一个东西都要及时做出反馈,就是我学了这个东西就可把我的项目往前推进一步,而不是全部学完之后才回头去搞最初那个目标。
TL;DR#
- 想去大公司,请不要专注于 PHP。其他,学 PHP 完全没问题。
- PHP 安装简单,入门快,开发容易,部署方便。
- PHP 的定位是传统网页开发
- PHP 有局限性,某些时候需要多语言合作。
- PHP 可以写一些小工具