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. centos7.6 安装Tomcat-8.5.39

    #关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld setenforce sed -i '/SELINUX=/ s/ ...

  2. Shell—脚本编程进阶

    shell脚本进阶之条件语句 条件选择if语句 https://www.runoob.com/?s=shell&page=1 https://www.cnblogs.com/flylinux/ ...

  3. ASCII码表收藏

    ASCII码表 ASCII码值 ESC键 VK_ESCAPE (27)回车键: VK_RETURN (13)TAB键: VK_TAB (9)Caps Lock键: VK_CAPITAL (20)Shi ...

  4. python 导入同级目录文件时报错

    当你import的时候,python解释器只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package或module. 而一个package跟一个普通文 ...

  5. JQuery解决鼠标单双击冲突问题

    转自链接:https://www.shuzhiduo.com/A/xl560MKrzr/ 在jQuery的事件绑定中,如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单 ...

  6. [译]Vulkan教程(05)Instance

    [译]Vulkan教程(05)Instance Creating an instance 创建一个instance The very first thing you need to do is ini ...

  7. vuetify,vux,Mint UI 等框架的选择

    vuetify: https://vuetifyjs.com/zh-Hans/getting-started/quick-start NutUI:https://github.com/jdf2e/nu ...

  8. Java 并发编程 | 线程池详解

    原文: https://chenmingyu.top/concurrent-threadpool/ 线程池 线程池用来处理异步任务或者并发执行的任务 优点: 重复利用已创建的线程,减少创建和销毁线程造 ...

  9. JavaScript学习笔记-----NaN、isNan

    NaN  /  Number.NaN 全局属性 NaN 的值表示不是一个数字(Not-A-Number), NaN 属性的初始值就是 NaN,和 Number.NaN 的值一样. 在现代浏览器中(ES ...

  10. JS 实现

    JavaScript 使用 HTML 中的脚本必须位于<script> 与 </script>标签之间. 脚本可被放置在 HTML 页面的 <body>和 < ...