PHP Tutorial 00 - Why PHP?

你是怎么得知 PHP 的?#

这个问题需要你自己来回答。

  • 从同学那听说的。
  • 选课时候发现的。
  • 听说做互联网开发赚钱,上网搜索到的。

搜索互联网开发,与 PHP 并列的可能就是 Java 了。你可能会很纠结,请继续往下看。

  • 或者是《年薪百万程序员教你两个小时写出淘宝网站》←_←

不管你了解的途径如何,有一个梗你需要了解一下。

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 的 Benchmark 通常会选用 WordPress 作为测试项目。

Benchmark:标准检查程序(其实就是跑分)

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 是最好的语言”的一个原因

如何学习 PHP?#

  • 我是零基础小白:只要你是真的想学,没问题。
  • 我有编程基础
    • 我只会类似谭浩强那套 C 语言:虽然被谭坑得挺惨,但是那些东西没有白学。
    • 我有网络开发基础:学过其他语言的网络编程,PHP 简直再简单不过了。

我建议带着目的去学习,就是

我有一个想法,我要做出一个这样的东西。为了达成这个目标,我需要什么工具,然后去学习这些工具。结果发现又需要使用另外的工具,再去学习另外的工具。

注意:每学一个东西都要及时做出反馈,就是我学了这个东西就可把我的项目往前推进一步,而不是全部学完之后才回头去搞最初那个目标。

我是 2015 年开始接触 PHP,我有一些编程基础,大约学习 1 个月就可以写出一个能用的东西了。

我觉得国内没有什么比较好的视频教程,所以自己尝试做了一份,虽然不能保证自己的教程如何,但是就当做自己的总结吧,同时方便后来的同学。

TL;DR#

TL;DR “Too long; didn’t read.”

  1. 想去大公司,请不要专注于 PHP。其他,学 PHP 完全没问题。
  2. PHP 安装简单,入门快,开发容易,部署方便。
  3. PHP 的定位是传统网页开发
  4. PHP 有局限性,某些时候需要多语言合作。
  5. PHP 可以写一些小工具