PHP学习之PHP编码习惯
- 命名要有实际含义
- 命名风格保持一致
- 不用拼音命名
- 不用语言关键字
- 好的代码应该是自描述的
- 难以理解的地方加上注释
- 函数的功能加上注释说明
- 类的功能和使用方法加注释
- 代码不能只有一份
- 启用编译器的自动备份
- 用代码管理工具备份
- PHP文件编码==模板编码==数据库编码
- 使用一个未定义的变量,比使用一个定义好的变量要慢8倍以上!
可以想象,PHP引擎会首先按照正常的逻辑来获取这个变量,然而这个变量不存在,所以PHP引擎需要抛出一个NOTICE,并且进入一段使用未定义变量时应该走的逻辑,然后返回一个新的变量。另外,阅读代码的角度讲,当你使用一个未定义的变量时,会让阅读你代码的人困惑:“这个变量在哪里初始化的,和之前的代码有关系吗?和include进来的文件有关系吗?”使用NULL ===来代替is_null
- is_null和NULL ===完全是一样的效果,但是却节省了一次函数的调用。
- PHP有两组相等比较运算符===/!==和==/!=,==/!=会有隐式类型转换,而===/!==会严格比较两个操作时是否类型相同并且值相等。
- 会导致每次循环都运行计算
- strtr函数的效率是str_replace的四倍
- $row['id']的效率是$row[id]的7倍
header("Content-type: text/html;charset=utf-8");
- 纯PHP代码,最好在文件末尾删除PHP结束标记
error_reporting(7)
- E_ERROR
- E_WARNING
- E_PARSE
- 养错不用@的好习惯
- 对于操作类的函数,失败返回FALSE,表示“操作失败了”,而对于查询类的函数,如果找不到想要的值,则应该返回NULL,表示“找不到”。
- 正则耗时,尽量避免,而采用直接的字符串处理函数代替,如:
filter_var('zhangsan@163.com',FILTER_VALIDATE_EMAIL);
- 有用的PHP内置函数
usort--使用用户自定义的比较函数对数组中的值进行排序rawurlencode--按照RFC1738对url进行编码parse_url--解析URL,返回其组成部分http_build_query--生成URL-encode之后的请求字符串exif_imagetype--判断一个图像的类型uniqid--生成一个唯一IDget_browser--获取浏览器具有的功能str_word_count--返回字符串中单词的使用情况
- 不要相信外部的一切输入!所以的输入都要检查
PHP学习之PHP编码习惯的更多相关文章
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
类型判断符号: C#:object a; if(a is int) { } 用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...
- 测试不得不知的python编程小技能-----升级版基础语法和优秀的编码习惯
编程和学习python,最后快速上手.能写小工具,写自动化用例这类要求对鹅厂的测试人员来说都是一些基础的必备素质,但是一个优秀的测试,也是有着一颗开发完美测试工具的心的.但是罗马不是一天构建成,特别是 ...
- 好的android编码习惯
上一期分享了android内存优化的一些总结,这一期说说我认为的好的编码习惯,然后下一期会做安卓数据库优化的一些总结,逐渐的会将一些性能优化点总结分享出来,肯定是不够全面的希望不足的地方欢迎指出. 良 ...
- C#编码标准--编码习惯
C#编码标准--编码习惯 0. 书写程序时的大小写规则: a) 类:PascalCase表示法.如 MyClass b) 枚举值:PascalCase表示法.如 Colors.Red c) 枚举类型 ...
- kotlin 语言入门指南(三)--编码习惯
这章主要讲当前 kotlin 的一些编码习惯. 命名 如无疑问,kotlin 的命名风格与以下的java风格一样: --驼峰命名法(不要使用下划线) --类名首字母大写 --方法和属性名首字母小写 - ...
- 我的编码习惯 - Controller规范
原文出处: 晓风轻 请先阅读我这2篇文章 程序员你为什么这么累? 和 我的编码习惯 - 接口定义. 第一篇文章中,我贴了2段代码,第一个是原生态的,第2段是我指定了接口定义规范,使用AOP技术之后最终 ...
- Python编码规范(养成好的编码习惯很重要)
学习过程养成良好的编码习惯 1. 类名采用驼峰命名法,即类名的每个首字母都大写,如:class HelloWord,类名不使用下划线 2. 函数名只使用小写字母和下划线 3.定义类后面包含一个文档字符 ...
- MySQL学习笔记5——编码
MySQL学习笔记5之编码 编码 1.查看MySQL数据库编码 *SHOW VARIABLES LIK 'char%'; 2.编码解释 *character_set_client:MySQL使用该编码 ...
- java良好的编码习惯
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步 ...
随机推荐
- js 选择文本
怎么用js脚本,选中文本呢? // 获取selection对象 var selection = window.getSelection(); // 清空selection对象 selection.re ...
- 2Dot grammar
http://www.cnblogs.com/mjios/archive/2013/04/08/3006577.html . #import <Foundation/Foundation.h&g ...
- speech-to-text-wavenet
docker pull buriburisuri/speech-to-text-wavenet docker run -it buriburisuri/speech-to-text-wavenet p ...
- c 判断是否为nan
/* isnan example */ #include <stdio.h> /* printf */ #include <math.h> /* isnan, sqrt */ ...
- classpath详解
在dos下编译java程序,就要用到classpath这个概念,尤其是在没有设置环境变量的时候.classpath就是存放.class等编译后文件的路径. javac:如果当前你要编译的java文件中 ...
- JAVA - IO - IO的类型(AIO, BIO, NIO)
IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...
- Raspberry Pi 4B FTP服务器配置
目录 1. 安装vsftpd并启动 2. 编辑配置文件 3. 重启服务 4. 测试 5. 为Web服务器添加管理员账户,便于通过ftp网站信息 参考资料:树莓派(raspberry pi)学习之安装f ...
- oracle清除归档
清除Oracle归档日志命令echo -e 'delete noprompt archivelog ALL COMPLETED BEFORE '\'SYSDATE-${DELETE_ARCHIVELO ...
- elasticsearch-6.4.3 集群搭建
1.准备三台服务器,已安装好es. 2.修改服务集群配置如下 使用命令: vi elasticsearch.yml 如下: cluster.name: myes ###保证三台服务器节点集群名称相同 ...
- tortoiseGit did not exit cleanly (exit code 128)
安装并配置好tortoiseGit之后,clone项目时,报错: git did not exit cleanly (exit code 128)如下图: 该问题解决方式: 1.确保Pageant启动 ...