记得我刚开始学习 PHP 的时候, 许多面试官会经常问我 PHP 是什么, 那时的标准回答是 PHP 是一种弱类型动态脚本编程语言, 开源, 免费, 是超文本预处理器的缩写
这只是很浅的解释, PHP 对我来说是一个工具, 是我手里的一把锤子, 虽然这把锤子时常被调侃为两边都是起钉器的锤子
PHP 的特点
多进程模型
PHP 是以多进程模型设计的, 这样的好处是请求之间互不干涉, 一个请求失败也不会对其他进程造成影响, 作为最开始仅仅用于个人网站的一个工具集这样的设计并没有什么不妥, 随着 PHP 的应用变大, 访问量增加这种方式显然是不合适的, 因为启动一个进程的开销对于海量请求是不划算的, 所以现在 PHP 基本都是运行在 PHP-FPM 的管理下的, 这是一个 PHP 进程管理器, 它常驻内存启动一些 PHP 进程待命, 当请求进入时分配一个进程进行处理, PHP 进程处理完毕后回收进程, 但并不销毁进程, 这让 PHP 也能应对高流量的访问请求
当然现在也有 PHP 多线程的解决方案和基于协程的解决方案让 PHP 更高效的处理 web 请求
弱类型
与 JAVAC/C++ 不同, PHP 是一门若类型的语言, 变量在声明的那一刻是不需要确定它的类型的, 而在运行时类型也会发生显式或隐式的类型改变, 这也是 PHP 开发应用迅速方便的原因之一
其他
Zend 引擎 + Ext 扩展 的模式降低了内部耦合, 可以方便的为 PHP 本身增加功能和去除功能
语法简单, 没有太多强制规范, 编程风格上既可以用过程式也可以用面向对象的方式进行开发, 当然函数式也可以
来源: https://juejin.im/post/5a926e02f265da4e7a7874e0