如何让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下几种删除目录的方法总结
Aug 19 PHP
php db类库进行数据库操作
Mar 19 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP Class&Object -- 解析PHP实现二叉树
Jun 25 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
Yii清理缓存的方法
Jan 06 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 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实现获取客户端IP并获取IP信息
2015/03/17 PHP
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
js正则相关知识点专题
2018/05/10 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python入门篇之条件、循环
2014/10/17 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
大学信息公开实施方案
2014/03/09 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
《绝招》教学反思
2016/02/20 职场文书