服务器 频道

PHP编码规范(下)

  6. 其他

  · 采用面向对象的设计方法;

  理由
  毫无疑问这是最接近人们自然思维的方法,可能前期会觉得没有直接书写来得快,能否试着保留自己的看法?好戏在后头!

  · 类的定义采用一个文件一个类,并且类名和文件名相同;

  理由
  o 越来越多的人接受了这种做法
  o 事实证明这种方法使得项目的逻辑结构更清晰

  · 类定义文件中,定义体之外不得出现诸如echo、print等输出语句;

  理由
  出现这样的语句,应该当做出现bug来看。

  · 输出网页的页面不出现SQL语句

  理由
  这是n层结构的编程思想所致,每层的任务不同,虽然可以越权行使,可能这样很快捷,但我们不赞成这么干。

  · 进行SQL执行的数据必须进行有效**检测

  特殊符号:
  对于MS SQL Server,’%_[ ] 这些符号都是在书写SQL语句中的特殊含义字符,在SQL执行前需要对这些字符进行处理。
  脚本符号:
  对于PHP脚本标记,如<??><%%><?php?><script lang<script language="php"></script>,在进入数据库前需要检测处理。
  理由
  这是数据库编程的一个约定,很多参考书上也是这么说,这里需要强调一下。

  · 在HTML网页中尽量不要穿插PHP代码

  循环代码和纯粹变量输出(类似于<?=$UserName?>)除外。
  理由
  o 需要说明的是我们工作的上游,页面设计者的工作,假如在页面中穿插代码,将破坏结构,这应当是我们需要避免的。
  o 在这里的PHP代码只负责显示,多余的代码显然是不应该的。

  · 没有含义的数字

  一个在源代码中使用了的赤裸裸的数字是不可思议的数字,因为包括作者,在三个月内,没人它的含义。例如:
  if (22 == $foo) { start_thermo_nuclear_war(); }
  else if (19 == $foo) { refund_lotso_money(); }
  else if (16 == $foo) { infinite_loop(); }
  else { cry_cause_im_lost(); }
  在上例中22和19的含义是什么呢?如果一个数字改变了,或者这些数字只是简单的错误,你会怎么想?
  使用不可思议的数字是该程序员是业余运动员的重要标志.
  你应该用define()来给你想表示某样东西的数值一个真正的名字,而不是采用赤裸裸的数字,例如:
  define("PRESIDENT_WENT_CRAZY", "22");
  define("WE_GOOFED", "19");
  define("THEY_DIDNT_PAY", "16");

  if (PRESIDENT_WENT_CRAZY == $foo) { start_thermo_nuclear_war(); }
  else if (WE_GOOFED == $foo) { refund_lotso_money(); }
  else if (THEY_DIDNT_PAY == $foo) { infinite_loop(); }
  else { happy_days_i_know_why_im_here(); }
  现在不是变得更好了么?

  
  7. PHP文件扩展名

  
  
常见的PHP文件的扩展名有:html, .php, .php3, .php4, .phtml, .inc, .class...
  这里我们约定:

  · 所有浏览者可见页面使用.html
  · 所有类、函数库文件使用.php

  理由

  · 扩展名描述的是那种数据是用户将会收到的。PHP是解释为HTML的。
  

  8. PHP代码标记

  统一使用<?php ?>,只输出变量时<?=$username?>
  

0
相关文章