良好的只是习惯,不仅可以让别人更容易读懂你的代码,也避免出现“这是我写的代码么?”这样的疑问。代码注释的分格因人而异,但只要结构合理、通俗易懂可满足要求。

除了开发团队编码规范要求外,注释一般可分为文件注释、类注释和方法注释3种。这里参考PHPDoc的注释规范,他是一种注释PHP的代码的正式标准,在IDE中提供代码完成、类型提示和除错功能,而且支持面向对象和面向过程的不同代码分分格。

下面是一个典型的带有PHP注释的用户类(User):

<?php
/**
 * 用户类‘
 * @category PHP
 * @author   dz5362<2938039696@qq.com>
 * @version Release:1.1
 */
 class User{
  /**
   * 用户名
   *
   * @var( string)
   */
  private $user = "";
  /**
   * 用户类构造方法
   */
  public function __contruct(){

  }
  /**
   * 获取用户名
   *
   * @return string
   * 
   */
  public function getUsername(){
  	return $this->username;
  }
  /**
   * 设置用户名
   *
   * @param string $username 用户名1
   * @return mixed
   */
  public function setUserName($username=''){
  	return $this->username = $username;
  }
 }

?>

从实例中可以看出,无论是类注释,还是方法注释,都使用了类似“@标签名 说明内容”的方式,对注释进行描述,多个标签描述组成了注释块。而这样的标签还有很多,开发者使用的时候可以灵活搭配。PHPDoc提供的常见注释标签说明如下:

PHPDoc提供的常见注释标签说明

标 签 实 例 说 明
@abstract   抽象类的变量和方法
@access public,private or protected 文档的访问权限和使用权限。@access private表明这个文档是私有的
@author blogs<xxxxxxx@qq.com> 文档作者信息
@copyright 名称 时间 文档版权信息
@deprecated Version 文档中被废除的方法
@deprec   同@deprecated
@example /path/to/example 文档的外部保存示例文件的位置
@exception   文档中方法抛出的异常,也可参照@throws
@global 类型:$globalvarname 文档中全局变量及有关的方法和函数
@ignore   忽略文档中指定的关键词
@internal   开发团队内部信息
@link URL 雷士listense,但还可以通过访问link地址找到文档更多的详细信息
@name 变量别名 为某个变量指定别名
@magic   PHPDoc兼容phpDocument的标签
@package 封装包的名称 一组相关类、函数封装的包名称
@param 如 [$username] 用户名 输入变量含义注释
@return 如返回bool 输出函数返回结果描述。一般不用void(空返回结果)的函数中
@see 如Class Login() 文件关联的任何元素(全局变量,包括页面、类、函数、定义、方法、变量)
@since version 记录什么时候对文档的哪些部分进行了修改
@static   记录静态类方法
@staticvar   在类、函数中使用的静态变量
@subpackage   子版本
@throws   抛出的异常
@todo   表示文件未完成或者要完善的地方