要想成为一名“合格”的程序员,就必须要有良好的编程习惯和规范,这样做的好处有很多,诸如:可以提高代码质量,提高程序的可维护性,提高开发速度和效率等。以下就简要的列出几条日常编写程序时大概要注意的一些“事项”吧,供大家参考。
一、使用前后缀
前缀具有说明该命名的类属性的功能,具有相同前缀的命名很容易确定其懒于同一类。
如:class MyDataBase {}; class MyDataGrid {};
后缀则反映一个名称的功能。如:$AgeMax ,$ScoreMin ,$ScoreCnt function IsMale (),function GetAge (),function SetAge ()
二、类命名规范
命名前道德要知道它是什么,命名的目标是:通过类名提供的线索使程序员可以基本了解这个类是什么。
规范:1、使用大写字母作为词的分隔,其它字母均使用小写
     2、尽量少于3个词
     3、名字的首字母使用大写
     4、不要使用下划线“_”
     5、缩写词不要全部使用大写字母,如:使用PhpTest而非PHPTest
三、方法和函数命名规范
方法和函数是执行一个动作,对其命名应该清楚地说明它们是做什么的。
如:用CheckForErrors()代替ErrorCheck(),DumpDataToFile()代替DataFile()
还有方法和函数常使用一些前缀来表意,如:(1)Is含义为问一个关于某事物的问题 IsMale(),(2)Get 取得一个数值GetAge(),(3)Set设定一个数值SetAge()
四、方法中参数命名规范
方法中参数命名的目标是:可以通过其名称随时知道哪个变量对应哪个变量,并中使用与类属性相似的名称,而不至于产生重命名冲突,常用规范如下:
(1)第一个字母使用小写字母(2)在首字符后的所有字母都按照类命名规则首字母大写,如:class Student { function GetInfomation(&$rName,&$rAge)}
五、类属性命名规范
方法名和属性名很相似,特别是存取元素,类属性常常使用前缀‘m’防止属性和方法名发生冲突。'm'总是名字的开头起修饰作用,就像以'r'开头表示引用一样。规范如下:(1)以字符'm'为前缀(2)'m'后采用与类命名一致的规则。
六、变量规则
变量的命名目标为:指示变量在代码中的作用域,并使所有的变量在代码都看起来不同,容易辨认。常用规范如下:
(1)局部变量规范
所有字母都使用小写,使用'_'作为每个词的分界。示例:function GetInfomation(){$student_name;$student_age;}
(2)引用变量规范
引用必须带r前缀,使得类型不同的变量容易辨认,进而可以确定哪个方法返回可更改对像,哪个方法返回不可更改对像。示例:function GetInfomation($rName){$rName=this -> mName;}
(3)全局变量使用规范
全局变量应该带'g'如:global $gLog,golbal &$grLog;
(4)全局常量使用规范
全局常量用'_'分隔每个单词,并且全部使用大写字母。示例:define ("A_GLOBL_CONSTANT","Hello,World!")
(5)静态变量使用规范
静态变量前应该带's'.示例:static $sstudent_count=0;
 
由于时间仓促其它相关规范,有待进一步整理。

PHP编程时的规范化命名的更多相关文章

  1. J2EE开发时的包命名规则

    http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...

  2. 模块化编程时,#include到底要放在哪里?

    结合我自己的经验,谈一谈模块化编程时#include应该出现的位置.总结起来大体有二条规则: 一.规则1:只包含必要的头文件 看下面这个模块: ===foo.c==== #include <st ...

  3. 单片机中用c编程时头文件reg51.h及reg52.h解析

    单片机中用c编程时头文件reg51.h及reg52.h解析 我们在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,我们怎么样来理解呢? 1)“文件包含”处理. 程序的第一行是一个“文 ...

  4. 编程时 对 用途这个字段定义时 不要用using 这个英文

    编程时  对 用途这个字段定义时  不要用using 这个英文

  5. 用eclipse javaEE编程时,不管什么程序都会出现这个错误[SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:bookstore' did not find

    用eclipse javaEE编程时,不管什么程序都会出现这个错误[SetContextPropertiesRule]{Context} Setting property 'source' to 'o ...

  6. 用MPLAB IDE编程时,软件总是弹出一个窗口提示: “the extended cpu mode configuration bit is enabled,but the program that was loaded was not built using extended cpu instructions. therefore,your code may not work properly

    用MPLAB IDE编程时,软件总是弹出一个窗口提示:"the extended cpu mode configuration bit is enabled,but the program ...

  7. 【爬坑】Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'

    1. 问题描述 Python 3.6 在 Socket 编程时出现错误如下 Traceback (most recent call last): File "F:/share/IdeaPro ...

  8. 实现编程时Vim自动导入相应模板

    Vim文本编辑器以简洁高效著称,那么我们在编程时能有自动加载相应的模板,从而省去一些固定的输入提升工作效率呢!当然可以,可以有多种方法实现,我这里介绍一种非常简单的方法. 首先在你的主用户文件下面建立 ...

  9. AWT编程时,Button按钮上的中文编程□□□

    今天学到AWT编程时,照着书上的代码打,代码如下: import java.awt.*; public class PanelTest{    public static void main(Stri ...

随机推荐

  1. Ubuntu中清理Network下Connect to Server的入口

    转自:http://blog.csdn.net/maxilbert/article/details/51126467 connect to server入口列表文件以xml格式存放在 ~/.confi ...

  2. yii2.0 添加组件baidu ueditor

    下载uditor git clone https://github.com/BigKuCha/yii2-ueditor-widget.git 将下载的项目放到 common/wdigets目录上 修改 ...

  3. 3D 模型

    http://www.imooc.com/article/12670

  4. springboot 线程池

    我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,帮助我们更方便的将业务逻辑提交到线程池中异步执行,今天我们就来实战体验这个线程池服务: 本 ...

  5. 设计table表格,用js设计偶数行和奇数行显示不同的颜色

    第一种:鼠标经过时table表格中的颜色根据奇偶行改变不同的颜色 <!DOCTYPE html> <html> <head> <meta charset=&q ...

  6. python全栈开发 什么是python python命名及循环

    python全栈 一.  python介绍: 1.    python起源 2.    主要应用领域; web,人工智能,云计算,系统运维. 1.1   python是一门什么语言? python是一 ...

  7. angularjs 获取$scope对象

    参考 https://blog.csdn.net/u011974399/article/details/77865293 angular.element("[ng-controller=xx ...

  8. C++批量注释代码段取消注释代码段快捷键

    1,   先选中要注释的代码段 2,按住ctrl+k+c注释本段代码 3,按住ctrl+k+u取消注释本段代码 用VS2013运行C++语言程序,运行结果闪一下就没了 解决方法是: 在return   ...

  9. 利用MATLAB截取一张复杂图片中想要的区域

    A = imread('1.jpg'); imshow(A); [x,y] = ginput(2);    %确定图像上的两点利用ginput函数,返回值是两点的坐标 pic_1 = imcrop(A ...

  10. 我的tensorflow学习1

    1.神经元被分成了多层,层与层之间的神经元有连接,而层内之间的神经元没有连接.最左边的层叫做输入层,这层负责接收输入数据:最右边的层叫输出层,我们可以从这层获取神经网络输出数据.输入层和输出层之间的层 ...