如何让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 相关文章推荐
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
php字符串的替换,分割和连接方法
May 23 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
PHP的new static和new self的区别与使用
Nov 27 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 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
Mac下安装vue
2018/04/11 Javascript
python获取豆瓣电影简介代码分享
2014/01/16 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
洗车工岗位职责
2014/03/15 职场文书
法人授权委托书范本
2014/04/04 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android