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的更多相关文章

  1. 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1

    <细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...

  2. 《C++Primer》第五版习题答案--第二章【学习笔记】

    C++Primer第五版习题解答---第二章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/9 第二章:变量和基本类型 练习2.1: 类 ...

  3. Linux第一章第二章学习笔记

    第一章 Linux内核简介 1.1 Unix的历史 它是现存操作系统中最强大最优秀的系统. 设计简洁,在发布时提供原代码. 所有东西都被当做文件对待. Unix的内核和其他相关软件是用C语言编写而成的 ...

  4. Windows程序设计(第五版)学习:第二章 Unicode简介

    第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为C ...

  5. c#高级编程第七版 学习笔记 第二章 核心c#

    第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...

  6. CSS3秘笈复习:第一章&第二章&第三章

    第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@i ...

  7. Practical Vim 第一章 & 第二章

    第一章:Vim 解决问题的方式 前言 本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间. Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...

  8. Linux内核设计与实现 第一章 第二章

    第一章 Linux内核简介 Unix特点: (1)     Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2)     在Unix中,所有的东西都被当作文件对待,通过一套相 ...

  9. 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 5

    2.5  如何学习PHP PHP以其简单易学的特点,以及敏捷开发的优势,从一个几乎不被人知的开源项目,慢慢成长为技术人员首选的动态Web设计工具,与其他语言相比,PHP表现得更好.更快.更简单易学.尽 ...

  10. 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 4

    2.4  PHP的发展 最初创建时,PHP是一个简单的用Perl语言编写的程序,只是为了统计自己的网站有多少访问者.后来又用C语言重新编写,多年来,PHP经过无数开源贡献者的不断迭代,历经数个版本,已 ...

随机推荐

  1. SQL Server解惑——为什么你的查询结果超出了查询时间范围

    废话少说,直接上SQL代码(有兴趣的测试验证一下),下面这个查询语句为什么将2008-11-27的记录查询出来了呢?这个是同事遇到的一个问题,个人设计了一个例子. USE AdventureWorks ...

  2. linux_ext4恢复超级块.txt

    恢复ext4文件系统superblock 2014-04-01 17:00:17 分类: Linux 恢复ext4文件系统superblock1. Create ext4 文件系统.[root@loc ...

  3. bayaim_Centos7.6_mysql源码5.7-multi_20190424.txt

    用户名/密码mysql/mysql 一.安装mysql: 位置位于 /data/mysql 如果遇到依赖,无法删除,使用 rpm -e --nodeps <包的名字> 不检查依赖,直接删除 ...

  4. Linux基础 —基础要点

    一.请简述Linux安装时的两个必备分区.挂载点和类型. 一般情况下,安装红旗Linux需要两个必备分区,即一个根文件系统分区,挂载点(/),类型为ext3.ext2或reiserfs:一个交换分区, ...

  5. Map随笔:有序的HashMap——LinkedHashMap

    目录 Map随笔:有序的HashMap--LinkedHashMap 一,概述 二,源码结构 三,总结 Map随笔:有序的HashMap--LinkedHashMap 一,概述 ​ LinkedHas ...

  6. Java之String类

    String类概述 java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例.其实就是说:程序当中所有的双引 ...

  7. go语言之切片即动态数组

    切片和数组的类型有什么不一样,我们可以打印一下,就可以知道两者的区别了,数组是容量的,所以中括号中有容量,切片的动态数组,是没有容量,这是数组和切片最大的区别 test8_4 := [20] int ...

  8. 深蓝词库转换2.6版发布——支持Emoji、颜文字和小鹤双拼

    端午期间,别人在度假,我在家码代码,把深蓝词库转换做了一下版本升级.本次更新主要是2大特性: 1.支持Emoji和颜文字 在源词库中可以选择Emoji. Emoji文件的格式为: Emoji+< ...

  9. .net core web api 添加对session跨域实现

    1.配置Startup /ConfigureServices添加: services.AddSession(options => { options.Cookie.Name = ".A ...

  10. 在ASP.NET Core 3.0中使用Swagger

    1.使用NuGet安装以下依赖: Swashbuckle.AspNetCore 注:版本选最高版本的,我选 5.0 rc4 2.在ConfigureServices添加以下代码 services.Ad ...