《细说PHP》 第四版 样章 第二章 PHP的应用与发展 3
2.3 PHP的开发优势
每种编程语言都有针对的领域,当然相同领域也有多个编程语言可以选择, 所以需要了解每种编程语言的优势和劣势,才能更好地去选择使用,在对的开发领域充分发挥它的优势,编写出最优质的产品。PHP的一些基本优势总结如下。
2.3.1 简单易学
PHP是一种强大的脚本语言,语法混合了C、Java、Perl和PHP式的新语法,和C/C++、Java等相比,PHP更容易上手。随着PHP的发展,功能越来越完善,最重要的是PHP是一种开源脚本语言,程序代码清晰,是弱类型语言,比强类型语言代码随意得多。另外,常用的数据结构都内置了,使用方便,表达能力相当灵活,还支持面向过程和面向对象两种开发模式并行。PHP非常活跃,从事PHP程序开发的人越来越多,学习资料也越来越全面。PHP环境部署也方便,新手只需要短短数日便可上手。但写好PHP并不容易,事实上用PHP把业务写完很容易,但能把业务写好则需要非常扎实的基本功。虽然入门较为容易一些,但对于一些中大型的项目架构、数据分析、业务流程和算法等,也是需要在项目中长期积累经验才能完成得更好。
2.3.2 开发效率高
PHP专为Web而生,Web开发需要的相关协议、请求响应、各种数据流、加密处理等几乎都内置了。加上PHP和MySQL这对黄金搭档之间的配合,操作数据库的方便性是其他语言比不了的,和Web服务器Apache的配合也堪称完美。最主要的是,PHP是动态语言、弱类型,最新版的PHP 7增加了类型提示,让你的代码更加灵活,还有PHP语言中数组和字符串是开发中是最常用的类型,操作及其快捷。PHP还支持组件开发,可以借用Laravel、Yii等框架,快速组合程序架构,程序员只需要把精力放在业务流程的编写上即可,而PHP又特别适合对业务流程的编写。基于这些特点,在Web开发中PHP相对其他编程语言,开发速度最少能快2倍以上。
2.3.3 开发成本低
PHP开发软件速度快,可以缩短开发周期,降低开发成本。PHP程序员多数都必会一些前端技能,也适合做前端开发程序员,也就代表着企业可以用一个人做两个人的工作。从部署服务器的维度,PHP不受平台束缚,可以在UNIX、Linux等众多操作系统中架设基于PHP的Web服务器。采用Linux+Apache+PHP+MySQL这种开源免费的框架结构可以为企业经营者节省一笔开支。另外,PHP好用的框架是最多的,PHP可用于二次开发的产品也是最多的。在使用PHP开发时,如果自己的项目和已有的开源产品匹配,都会直接选择二次开发,这是最快的,只需要简单修改一些模块,就可以开发出自己的项目。如果没有直接可匹配的产品,现在也都是基于框架基础上进行开发,很少有程序员会从底层一步步构建自己的项目。所以开发成本低是企业选择PHP语言开发项目的主要因素。
2.3.4 程序执行效率高
在所有的开发语言中,PHP代码执行速度一定不是最快的,毕竟PHP是解释型的脚本语言,并不是像编译型语言那样,生成机器语言直接交给CPU去执行,而是需要使用解释器先处理一下。例如,中国人和美国人对话,编译型相当于两个人用中文直接对话,而解释型类似中间需要一个翻译。所以PHP的执行效率并没有编译型的语言效率高。但解释型语言的好处是,依赖解释器,跨平台性好。开发时不需要有编译的操作和等待时间,开发效率会快一些。不过, 开发Web项目几乎都在用解释型语言, 而PHP内嵌Zend加速引擎,消耗相当少的系统资源,算是解释型脚本语言中最快的。最主要是现在使用的PHP 7版本,虽然在功能和以往版本比升级不大,但对Zend引擎做了深度优化,使得PHP的执行效率提高很多倍。其实,一个网站的运行速度受编程语言的影响不大,最主要的差异是在操作数据库和其他资源上,如果解决得不好,耗时会很明显。而PHP和MySQL的完美配合,和其他Web开发组合相比,能解决很多在对数据库连接和查询上的消耗。另外,程序的执行效率和算法、业务逻辑有很大关系,而PHP最擅长的就是编写业务逻辑,能使用极少的代码将业务流程实现,也就意味着服务器会少执行很多步骤,运行速度也就会更快。
2.3.5 安全性良好
PHP是开源软件,所有PHP的源代码每个人都可以看到,代码在许多工程师手中进行了检测,同时它与Apache编译在一起的方式也可以让它具有灵活的安全设定,所以PHP具有了公认的安全性能。开源造就了强大、稳定、成熟的系统。
2.3.6 功能强大
PHP在Web项目开发过程中具有极其强大的功能,而且实现相对简单,不仅可以跨平台运行,还可操纵多种主流与非主流的关系型数据库和非关系型数据库。可与轻量级目录访问协议进行信息交换,还可与多种协议进行通信。包含丰富的扩展库,可以在各个互联网领域进行应用。PHP还可以使用Composer 帮你安装一些依赖的库文件,管理依赖关系的工具,用户可以在自己的项目中声明所依赖的外部工具库。另外,PHP的自定义接口安全、方便,可作为多种类型软件的服务器端开发。总之,现在主流语言中有的功能,PHP几乎都存在,而且PHP 7在某些方面的功能还更盛一筹。
2.3.7 可选择性多
使用PHP可选择性多,优点是根据需求可以自由选择搭配,而这也是PHP的缺点,选择得多信息量就大,需要学习的内容也就会增加。例如,在架构组合方面,PHP是跨平台的,能够用在所有的主流操作系统上,包括Linux、UNIX、Microsoft Windows、Mac OS X、RISC OS等。PHP也支持大多数的Web服务器,包括Apache、Nginx、IIS等。PHP可选择的数据库是最多的,几乎所有主流的数据库PHP都支持,另外在PHP中连接操作数据库的技术可选的也很多。在环境安装方面,可以选择在不同的操作系统下独立安装各个软件包,也可以直接使用集成的软件开发环境。在开发模式上,既可以选择面向过程的方式开发,也可以选择面向对象的思想开发,或者两者混合的方式来开发。还有就是在开发过程中,可选择的框架非常丰富,可选择的模板引擎也有很多种,当然根据项目需求可选择的二次开发的产品更是琳琅满目。



《细说PHP》 第四版 样章 第二章 PHP的应用与发展 3的更多相关文章
- 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1
<细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...
- 《C++Primer》第五版习题答案--第二章【学习笔记】
C++Primer第五版习题解答---第二章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/9 第二章:变量和基本类型 练习2.1: 类 ...
- Linux第一章第二章学习笔记
第一章 Linux内核简介 1.1 Unix的历史 它是现存操作系统中最强大最优秀的系统. 设计简洁,在发布时提供原代码. 所有东西都被当做文件对待. Unix的内核和其他相关软件是用C语言编写而成的 ...
- Windows程序设计(第五版)学习:第二章 Unicode简介
第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为C ...
- c#高级编程第七版 学习笔记 第二章 核心c#
第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...
- CSS3秘笈复习:第一章&第二章&第三章
第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@i ...
- Practical Vim 第一章 & 第二章
第一章:Vim 解决问题的方式 前言 本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间. Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...
- Linux内核设计与实现 第一章 第二章
第一章 Linux内核简介 Unix特点: (1) Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2) 在Unix中,所有的东西都被当作文件对待,通过一套相 ...
- 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 5
2.5 如何学习PHP PHP以其简单易学的特点,以及敏捷开发的优势,从一个几乎不被人知的开源项目,慢慢成长为技术人员首选的动态Web设计工具,与其他语言相比,PHP表现得更好.更快.更简单易学.尽 ...
- 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 4
2.4 PHP的发展 最初创建时,PHP是一个简单的用Perl语言编写的程序,只是为了统计自己的网站有多少访问者.后来又用C语言重新编写,多年来,PHP经过无数开源贡献者的不断迭代,历经数个版本,已 ...
随机推荐
- Anaconda创建环境失败,提示无法定位程序输入点
https://blog.csdn.net/qq_37465638/article/details/100071259 这篇博客写得很清楚,是anaconda下Library下lib下的一个文件和DD ...
- Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt
最近安装python,已经安装好,cmd终端中输入python.pip等命令都有用 然而在配置requirements.txt文件过程中,执行语句 “pip install -r requiremen ...
- Cocos2d-x 点击菜单按键居中放大(无需修改底层代码)
建议转至该处阅读 https://www.zybuluo.com/tangyikejun/note/21953 配置环境:win7+Cocos2d-x.2.0.3+VS2012 目标读者:已经了解Co ...
- BZOJ2820/LG2257 YY的GCD 莫比乌斯反演
问题描述 BZOJ2820 LG2257 题解 求 \(\sum\limits_{i=1}^{n}{\sum\limits_{j=1}^{m}{[gcd(i,j)==p]}}\) ,其中 \(p\)为 ...
- python强大的绘图模块matplotlib示例讲解
Matplotlib 是 Python 的绘图库.作为程序员,经常需要进行绘图,在我自己的工作中,如果需要绘图,一般都是将数据导入到excel中,然后通过excel生成图表,这样操作起来还是比较繁琐的 ...
- 解决NuGet下载太慢的问题
以下载CefSharp.Wpf v57.0.0版本为例: 1.打开NuGet官网:https://www.nuget.org/ 2.输入CefSharp.Wpf,点击查询,如下所示: 3.确认版本正确 ...
- MySQLl存储过程学习总结
1.简介 : 逻辑处理一般不是一条语句组成,需要多条之间相互配合使用 这时,存储过程就是为了以后使用而保存的的一条或多条Mysql语句的集合 2.为何 : 1)简单:将处理单 ...
- NIO基础方法一
1.remaining();返回当前位置与limit之间得元素数. int[] intArray={1,2,3,4}; IntBuffer intBuffer=IntBuffer.wrap(intAr ...
- ArcGIS Desktop中为图像设置成不显示背景色
加载的栅格图层在arcgis中显示有黑色背景 方法一:如果有矢量边界的话,直接用矢量边界把黑色背景裁剪掉即可. 方法二: 如果是RGB三色: 这个只是不显示,并不改变原有的值 如果是值: 附:为影像数 ...
- angluarjs实现过滤并替换关键字
html样式 <body ng-app="myapp" ng-controller="myCtrl"> <input type="t ...