《细说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经过无数开源贡献者的不断迭代,历经数个版本,已 ...
随机推荐
- JavaScript-打印倒三角形和正三角形
倒三角形 <script> var str=''; for(var i=1;i<=10;i++){ for(var j=i; j<=10;j++){ var str=str + ...
- RTP Payload Format for VP8 Video
整体结构 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+ ...
- Redux Class(immutable Record)引入的必要性 && Navigation引入方式
我的意见 和大家讨论一下几个问题 1. 项目里面没有用class规定的请求数据结构,调试数据的时候无法从前端获取请求的数据格式,要看后端接口,增加了调试的难度.我们以前会用immutable Reco ...
- [译]Vulkan教程(31)加载模型
[译]Vulkan教程(31)加载模型 Loading models 加载模型 Introduction 入门 Your program is now ready to render textured ...
- Springcloud 中 SpringBoot 配置全集 (收藏版)
Springcloud 中 SpringBoot 配置全集 (收藏版) 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群 ...
- 【安富莱】STM32H7用户手册发布,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至63章(2019-07-21)
说明: 1.本教程重在BSP驱动包设计方法和HAL库的框架学习,并将HAL库里面的各种弯弯绕捋顺,从而方便我们的程序设计. 2.由于是基于HAL库的文档,所以不限制H7系列,其它F1,F2,F3,F4 ...
- 10 个提升效率的Linux小技巧
您是否曾经惊讶于看到某人在 UNIX 中非常快速地工作,触发命令并快速地执行操作?是的,我碰到过几次,并且我一直都在向那些超级巨星开发者学习.在本文中,我想分享一些 UNIX 命令实践,这些实践是我在 ...
- 巧妙利用label标签实现input file上传文件自定义样式
提到上传文件,一般会想到用input file属性来实现,简单便捷,一行代码即可 但input file原生提供的默认样式大多情况下都不符合需求,且在不同浏览器上呈现的样式也不尽相同 我们往 ...
- ubuntu18.04 安装 搜狗输入法
一.安装fcitx sudo apt-get install fcitx-bin 因为搜狗拼音依赖fcitx,相关的依赖库和框架都会自动安装上. sudo apt-get install fcitx- ...
- 连接SpringBootAdmin 异常 Name or service not known
环境: 服务器:Linux 客户端:Windows 当客户端连接到SpringBootAdmin的时候,报了如下异常 明明显示可以连接了,但是就是报了客户端INSTANCE DOWN (down机 ...