如何让PHP编码更加好看利于阅读


Posted in PHP onMay 12, 2019

写出优秀的程序代码是一门艺术,要想如此,就必须在一开始就养成良好的编程习惯。良好的编程习惯不仅有助于项目初期的设计(如模块化),还可以使你编写的代码更易于理解,从而使代码的维护工作更轻松、更省力。不好的编程习惯则会造成代码bug,并且会使以后的维护工作困难重重。

本文以PHP语言为例,介绍一些良好的编程习惯,希望能够对你有所帮助。

1. 规划代码结构

优秀的PHP代码应该有清晰的结构。PHP面向对象的特性允许程序员将应用程序分解为函数或方法。如果代码晦涩难懂,你也可以添加注释,使代码的功能一目了然。编码时应尽量将前端代码(HTML/CSS/JavaScript)与应用程序的服务端规则分开,或者你可以使用遵循MVC模式的PHP框架来构建你的应用程序。

2. 编码风格统一

优秀的PHP代码应该具备统一的风格。比如,为变量和函数制定统一的命名规则,为循环任务(比如数据库存取、错误处理)制定统一的接入标准,或者保持有规律的代码缩进,这些编码习惯都可以让别人阅读代码更加轻松。

3. 可移植性

优秀的PHP代码应该具有可移植性。程序员应学会运用PHP现有的特性(比如魔术引号和短标签等),应该了解产品需求,适应PHP的特点,保证写出的PHP代码具有可移植性和跨平台性。

4. 代码安全性

优秀的PHP代码应该具有安全性。PHP5具有卓越的特性和灵活性,但应用程序的安全往往掌握在程序员的手中。作为专业的PHP开发人员,应该对安全漏洞有一些深入了解,常见的安全漏洞有跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、代码注入漏洞和字符编码漏洞等。使用PHP中的特定功能和函数(比如mysql_real_escape_string等)可以帮助程序员写出安全的代码。

5. 添加注释

代码注释是代码中的重要组成部分,它解释了函数运行的目的,这种注释会在代码以后的维护中提供非常有用的帮助。

6. 避免简写标记

应使用完整的起始标记,不推荐使用简写的起始标记。

7. 用单引号代替双引号

由于PHP会对双引号中的内容进行变量搜索,为了避免这种搜索带来的性能影响,程序员应该使用单引号引用字符串。

8. 转义输出

应该在htmlspecialchars函数中使用ENT_QUOTES参数,保证单引号(')也可以被转义。尽管没有规定必须这样做,但这是一个好习惯。

9. 使用逗号隔开字符串输出

字符串连接符(.)可以将单一的字符串传递给echo语句进行输出,与之相比,逗号可以实现echo语句中字符串的分别输出,这对PHP来说是一个性能改善。

10. 在输出前检查传递值

应该记得在输出前检查$_GET['query'] 的传递值。使用isset函数或是empty函数可以检查变量值是否为空。

PHP 相关文章推荐
利用PHP创建动态图像
Oct 09 PHP
Snoopy类使用小例子
Apr 15 PHP
很好用的PHP数据库类
May 27 PHP
php 分页原理详解
Aug 21 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
PHP中的异常处理机制深入讲解
Nov 10 PHP
Yii2处理密码加密及验证的方法
May 12 #PHP
php和asp语法上的区别总结
May 12 #PHP
Laravel推荐使用的十个辅助函数
May 10 #PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 #PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 #PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 #PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 #PHP
You might like
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
护理职业生涯规划书
2014/01/24 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
水知道答案观后感
2015/06/08 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书