为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范。
 
      一、文件标记:
 
         1.所有php文件,其代码标记均采用完整php标签,不建议使用短标签(短标签容易和xml混淆,php从5.4开始默认不支持短标记)。
 
         2.对于只有php的代码文件,建议省略结尾处的‘?>’。这是为了防止多余的空格或其他字符影响到代码。
 
      二、文件和目录命名
 
         1.程序文件名和目录名均采用有意义的英文命名,不使用拼音和无意义的字母,只允许出现字母、数字、下划线和中划线字  符,同时必须以‘.php’结尾(模板文件除外),多个词间使用驼峰命名法。
 
            例://类统一采用:DemoTest.class.php
 
                  //接口统一采用:DemoTest.interface.php
 
                  //其他按照各自的方式:demoTest.{style}.php
 
      三、文件目录结构
 
        规范的目录结构有助于团队协作开发和后期维护。
 
        ——app            //独立的应用
 
        ——class          //单个的类文件,共用的类文件
 
        ——conf/inc    //配置文件或目录
 
        ——data          //数据文件或目录
 
        ——doc           //程序相关文档
 
        ——htdocs       //document_root
 
        ——images       //所有图片文件存放路径
 
        ——css            //css文件
 
        ——js               //js文件
 
        ——lib              //共用类库
 
        ——template    //模板文件
 
        ——tmp            //临时文件目录
 
        ——cache    //缓存文件
 
        ——session  //SESSION文件
 
        ——template_c    //编译后的模板文件
 
        ——other
 
        ——upload      //上传文件
 
        ——manage    //后台管理文件目录
 
    四、命名规范
 
        1.变量命名:php中变量区分大小写,一个有效的变量名由数字、字母或下划线开头,后面跟任意数量的字母、数字、下划线。
 
            a)程序整体以驼峰命名法,以小写字母开始,同时命名要有意义。(function displayName())
 
            b)PHP全局变量键值两边都有‘_’,中间用驼峰命名法命名。($_GLOBAL['_beginTime_'])
 
            c)普通变量整体采用驼峰命名法,建议在变量前加表示类型的前缀。不确定类型的以大写字符开头。
 
            d)函数名要尽量有意义,尽量缩写。
 
        2.类及接口命名:
 
            a)以大写字母开头。
 
            b)多个单词组成的变量名,单词之间不用间隔,各个单词首字母大写。
 
            c)类名与类文件名保持一致。
 
            d)程序中所有的类名唯一。
 
            接口命名规则:
 
                i)采用和类相同的命名规则,但在其命名前加‘i’字符,表示接口。
 
                ii)尽量保持和实现它的类名一致。
 
        3.数据库命名:在数据库相关命名中,一律不出现大写。
 
            a)表名均使用小写字母。
 
            b)表名使用同一的前缀且前缀不能为空。
 
            c)对于多个单词组成的表名,使用‘_’间隔。
 
            d)表字段命名规则。
 
                    i)全部使用小写字母。
 
                    ii)多个单词不用下划线分割。
 
                    iii)给常用字段加上表名首字母做前缀。
 
                    iv)避免使用关键字和保留字。
 
    五、注释规范
 
        1.程序注释:写在代码前面而不是后面,单行代码按照习惯写在代码尾部;大段注释采用/**/的方式,通常为文件或函数的顶部,代码内部使用'//';注释不宜太多;代码注释应该描述为什么而不是做什么,给代码阅读者提供最主要的信息。
 
        2.文件注释:文件注释一般放在文件的顶部,包括本程序的描述、作者、项目名称、文件名称、时间日期、版本信息、重要的使用说明(类的调用,注意事项等)。版本更改要修改版本号.
 
        3.类和接口注释:按照一般的习惯,一个文件只包含一个类。
 
        4.方法和函数注释:方法和函数的注释写在前面,通常需要表明信息的主要可见性、参数类型和返回值类型。
 
            /**
 
            *    连接数据库
 
            *    @param string $dbhost    数据库服务器地址
 
            *    @param string $dbuser    数据库用户名
 
            *    @param string $dbpwd    数据库密码
 
            */
 
    六、代码风格
 
        1.缩进和空格:使用4个空格做为缩进,变量赋值时,等号两边留出空格。($url = '$_GET['url']';)
 
        2. 语句断行:尽量保证程序语句一行即一句;尽量不要使一行的代码过长,80个字符以内;如果一行的代码太长,请使用类似于‘.=’方式断行连接;执行数据库 的sql语句操作时,尽量不要再函数内写sql语句,而先用变量定义sql语句,然后在执行操作的函数中调用定义的变量。
 
        3.更好的习惯:在代码中使用下面列举的方法,可以使代码更优雅。
 
                1):多使用php中已经存在的常量,而不要自己定义。
 
                    例://换行
 
                          echo $msg."\r\n";
 
                          echo $msg,PHP_EOL;
 
                        php中PHP_EOL是一个预定义常量,表示一行结束,随着所使用系统不同,使用PHP_EOL代码可移植性更高
 
 
                2):单引号的效率高于双引号,但二者在使用上有区别,学会使用printf函数。
 
                    例://echo
 
                        echo  '每个'.$scholl.'大约有'.floor($avg).'个学生';
 
                          //printf
 
                       $format = '每个%s大于有$d个学生';
 
                        printf($format,$school,$avg);
 
                3)  :详细的注释
 
                4):不要 滥用语法糖,语法糖就是语言中的潜规则,即不具备普遍代表性的语法。
 
 
案例:
      string,字符串型,在变量前面加str
          $strMessage = 'Hello World!' ;
 
 
      integer,整数型变量,在前面加上'int'
          //下面一个变量为整数
          $intCount = 34343;
 
 
      float,浮点型, 在前面加上'fl'
          //下面一个变量为浮点型
          $flSave = 0.8 ; // 8折
 
 
      boolean,布尔型 在前面加上'bool'
          //下面一个变量为布尔型
          $boolEncode = true ;
 
 
      array,数组型, 在变量前面加arr, 一维数组使用名词单数,多维数组使用词复数
          //下面一个变量为一维数组
          $arrData = array ( 1 , 2 , 3 , 4 , 5 ,6) ;
 
          //下面一个变量为多维数组
          $arrMembers = array ( 'id' => 123456 , 'username' => 'ABC' , 'email' => 'abc#abc.com' ) ;
 
 
      object,对象型,在变量前面加obj 代表一个确切的类型的对象
          $objstr = New string();
 
 
      resource,资源型,在前面加上'rs'
          $rsConn = mysql_connect ( 'localhost' , 'user' , 'pw' ) ;
 
          $rsHandle = fopen( $strFilename );
 
 
 
 
三种编程命名规则(匈牙利法,小驼峰法,大驼峰法)
 
 
  1. 匈牙利命名:
 
  开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。
 
  For example: $Iprice = 123.0; 'i'代表类型缩写
 
    
 
  2. 小驼峰式:(little camel-case)
 
  第一个单词首字母小写,后面其他单词首字母大写。
 
  For example: $strPrice = 234.0;
 
    
 
  2. 大驼峰式:(big camel-case)
 
  每个单词的第一个字母都大写;
 
  For example:$StrPrice = 324234.0;
 
 
 
  驼峰命名法(Camel-Case)是电脑程式编写时的一套命名规则(惯例)。
 
程 序员们为了自己的代码能更容易的在同行之间交流,所以多才取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以 如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名 法来表示,可以增加程序可读性。
 
驼 峰命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始;第二个单字的首字母大写或每一个单字的首 字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
 
驼峰命名法(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,而 Larry Wall 等人所著的畅销书《Programming Perl》(O'Reilly 出版)的封面图片正是一匹骆驼。
 
驼峰命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。

PHP编码的规范性的更多相关文章

  1. (转)PHP(其他语言类似)编码的规范性

    为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范.         一.文件标记:            1.所有php文件 ...

  2. PL/SQL编码规范的一些建议

    由于业务的复杂多变,我们编写完的程序,在后期肯定要被修改,而且修改的人很可能不是自己.这种情况我们都遇到过. 而且,看别人的代码可能会觉得很痛苦:为什么他要这样写相关逻辑?为什么变量名称要这样定义?换 ...

  3. 系统间通信(5)——IO通信模型和JAVA实践 下篇

    7.异步IO 上面两篇文章中,我们分别讲解了阻塞式同步IO.非阻塞式同步IO.多路复用IO 这三种IO模型,以及JAVA对于这三种IO模型的支持.重点说明了IO模型是由操作系统提供支持,且这三种IO模 ...

  4. IE、FF、Safari、OP不同浏览器兼容报告

    IE.FF.Safari.OP不同浏览器兼容报告 1         浏览器内核简介 Trident IE浏览器(GreenBrowser绿色浏览器, 遨游浏览器....都是IE) Geckos Fi ...

  5. Java学习07 (第一遍) - Spring MVC

    跳过Struts2,直接学习Spring MVC MVC,自己画的 属性(Property/Attribute),事件(Event),方法(method/procedure),函数(Function) ...

  6. 网络I/O模型--06异步I/O

    异步I/O (又称为 AIO )则是采用“订阅一通知”工作模式 : 即应用程序向操作系统注册I/O监听,然后继续做自己的事情.当操作系统发生I/O事件,并且准备好数据后 , 再主动通知应用程序,触发相 ...

  7. php实现银联支付

    银联支付用的还是比较少的,而且开发中也没接触多少,不过因为工作项目用银联支付能降低费率,所以还是接入了银联支付.本文支付为银联网关和WAP支付接口. 官方网站SDK&DEMO:https:// ...

  8. 关于《iBoard 电子学堂》的学习及进阶方式(精 转)

    关于<iBoard 电子学堂>的学习及进阶方式 <iBoard 电子学堂>自发布以来,受到广大网友的热烈关注.虽然我前期设计我花了大量精力,但能得到大家的认可,我也非常欣慰.由 ...

  9. 新一代云WAF:防御能力智能化,用户享有规则“自主权”

    近日,在国际权威分析机构Frost & Sullivan发布的<2017年亚太区Web应用防火墙市场报告>中,阿里云以市场占有率45.8%的绝对优势连续两年领跑大中华区云WAF市场 ...

随机推荐

  1. sqlserver高版本还原到低版本方法

    想要将Sqlserver2014高版本备份的数据还原到低版本SqlServer2008R2上去,但是这在SqlServer中是没法直接还原数据库的,通过以下方法可以顺利还原. 通过高版本生成sql脚本 ...

  2. Python从小看到大

    最近迷恋上了python,因为一个朋友说python这种脚本语言很厉害,可以做网络攻防的时候用,但是由于自己太笨了,不得不从基础教程学起. 行左右.你可能会问为什么这么少的代码量,这门语言没有火起来, ...

  3. GET/POST/g和钩子函数(hook)

    GET请求和POST请求: 1. get请求: * 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求. * 传参:get请求传参是放在url中,并且是通过`?`的 ...

  4. Python和FTP

    1.HTTP主要用于基于Web的文件下载以及访问Web服务,一般客户端无须登录就可以访问服务器上的文件和服务.大部分HTTP文件传输请求都用于获取网页(即将网页文件下载到本地). 2.FTP主要用于匿 ...

  5. 最优的cuda线程配置

    1 每个SM上面失少要有192个激活线程,寄存器写后读的数据依赖才能被掩盖   2 将 寄存器 的bank冲突降到最低,应尽量使每个block含有的线程数是64的倍数   3 block的数量应设置得 ...

  6. JavaScript——原生js实现瀑布流

    瀑布流介绍及实现原理: 瀑布流是一种页面布局,页面上也有多等宽的块(块就页面内容),每一块都是绝对定位(absolute),每个块排列的方式如下:寻找现在高度最小的列,把该块定位到该列下方.需要知道, ...

  7. EOS 修改文件名称与文件夹名称

    最近有一个需求,需要修改EOS名称,将所有文件里面的EOS改为UOS,文件夹名称也需要修改,然后重新构建项目,于是写了一个小程序进行修改.如果有相同项目类似的修改,可以在下面这个程序稍做修改就可以了. ...

  8. 21.Longest Palindromic Substring(最长回文子串)

    Level:   Medium 题目描述: Given a string s, find the longest palindromic substring in s. You may assume ...

  9. windows安装redis并设置别名

    最近两天不知什么原因导致win10的redis 无法通过 双击 redis-server.exe 文件启动 redis服务:于是从新安装并且 通过命令行启动服务,并且设置别名,每次方便启动服务 1.下 ...

  10. liunx postfix与sendmail 开启与关闭

    1:检查sendmail服务的状态 service sendmail status 2:开启sendmail服务 service sendmail start 3:关闭sendmail服务 servi ...