如何让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
php数组总结篇(一)
Sep 30 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
php对接java现实加签验签的实例
Nov 25 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 04 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中的串行化变量和序列化对象
2006/09/05 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
php格式化json函数示例代码
2016/05/12 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
vue使用video插件vue-video-player的示例
2020/10/03 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Python爬取梨视频的示例
2021/01/29 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
应聘医学检验人员自荐信
2013/09/27 职场文书
社区安全检查制度
2014/02/03 职场文书
三好学生事迹材料
2014/12/24 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript