当前位置: 首页 > news >正文

如何写PHP规范注释

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

所有的文档标记都是在每一行的 * 后面以@开头。如果在一段话的中间出来@的标记,这个标记将会被当做普通内容而被忽略掉。

@access            该标记用于指明关键字的存取权限:private、public或proteced  使用范围: class , function , var , define , module
@author            指明作者
@copyright       指明版权信息
@const              使用范围:define 用来指明php中define的常量
@final                使用范围:class,function,var 指明关键字是一个最终的类、方法、属性,禁止派生、修改。
@global            指明在此函数中引用的全局变量
@name             为关键字指定一个别名。
@package         用于逻辑上将一个或几个关键字分到一组。
@abstrcut         说明当前类是一个抽象类
@param            指明一个函数的参数
@return            指明一个方法或函数的返回值
@static             指明关建字是静态的。
@var                 指明变量类型
@version          指明版本信息
@todo              指明应该改进或没有实现的地方
@link                可以通过link指到文档中的任何一个关键字
@ingore           用于在文档中忽略指定的关键字

一些注释规范
a.注释必须是
/**
* XXXXXXX
*/

的形式

b.对于引用了全局变量的函数,必须使用glboal标记。
c.对于变量,必须用var标记其类型(int,string,bool…)
d.函数必须通过param和return标记指明其参数和返回值
e.对于出现两次或两次以上的关键字,要通过ingore忽略掉多余的,只保留一个即可
f.调用了其他函数或类的地方,要使用link或其他标记链接到相应的部分,便于文档的阅读。
g.必要的地方使用非文档性注释(PHPDOC无法识别的关键字前的注释),提高代码易读性。
h.描述性内容尽量简明扼要,尽可能使用短语而非句子。
i.全局变量,静态变量和常量必须用相应标记说明

能够被phpdoc识别的关键字:
Include
Require
include_once
require_once
define
function
global
class

规范注释的php代码 :

<?php  
	/** 
	* 文件名(sample2.php) 
	* 
	* 功能描述(略) 
	* 
	* @author steve <liuzhiqun@facedoing.com> 
	* @version 1.0 
	* @package sample2 
	*/  

	/** 
	* 包含文件 
	*/  
	include_once 'sample3.php';  

	/** 
	* 声明全局变量 
	* @global integer $GLOBALS['_myvar'] 
	* @name $_myvar 
	*/  
	$GLOBALS['_myvar'] = 6;  

	/** 
	* 声明全局常量 
	*/  
	define('NUM', 6);  

	/** 
	* 类名 
	* 
	* 类功能描述 
	* 
	* @package sample2 
	* @subpackage classes(如果是父类 就添加) 
	*/  
	class myclass {  

		/** 
		* 声明普通变量 
		* 
		* @accessprivate 
		* @var integer|string 
		*/  
		var $firstvar = 6;  

		/** 
		* 创建构造函数 {@link $firstvar} 
		*/  
		function myclass() {  
			$this->firstvar = 7;  
		}  

		/** 
		* 定义函数 
		* 
		* 函数功能描述 
		* 
		* @global string $_myvar 
		* @staticvar integer $staticvar 
		* @param string $param1 
		* @param string $param2 
		* @return integer|string 
		*/  
		function firstFunc($param1, $param2 = 'optional') {  
			static $staticvar = 7;  
			global $_myvar;  
			return $staticvar;  
		}
}  
?>  

 

 

 

 

转载于:https://my.oschina.net/u/3901362/blog/1859900

相关文章:

  • /proc/stat文件详解(翻译)
  • Android性能:通过Choreographer检测UI丢帧和卡顿
  • java提高篇(五)-----使用序列化实现对象的拷贝
  • java小心机(3)| 浅析finalize()
  • Adapter Class Cast Exception Removing Footer View from ListView
  • LeetCode--014--最长公共前缀
  • 串口超时处理原理及实现
  • ACM北大暑期课培训第一天
  • Delphi窗体创建释放过程及单元文件小结(转)
  • Linux部署zabbix3.4 结合钉钉智能报警
  • 学生分数排序
  • zabbix3.4上简单web监测功能测试
  • linux系统man查询命令等级与意义
  • 关于ES6的Promise的使用深入理解
  • P1065 津津的储蓄计划
  • $translatePartialLoader加载失败及解决方式
  • .pyc 想到的一些问题
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • css布局,左右固定中间自适应实现
  • Cumulo 的 ClojureScript 模块已经成型
  • interface和setter,getter
  • JavaScript 奇技淫巧
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • SQLServer之索引简介
  • Vue 2.3、2.4 知识点小结
  • vuex 学习笔记 01
  • 从零搭建Koa2 Server
  • - 概述 - 《设计模式(极简c++版)》
  • 机器学习中为什么要做归一化normalization
  • 数据科学 第 3 章 11 字符串处理
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 问题之ssh中Host key verification failed的解决
  • 新版博客前端前瞻
  • 一、python与pycharm的安装
  • - 转 Ext2.0 form使用实例
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 昨天1024程序员节,我故意写了个死循环~
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #define、const、typedef的差别
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)二分查找 超详细
  • (八)c52学习之旅-中断实验
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计大学生兼职系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (转)大型网站架构演变和知识体系
  • (转载)利用webkit抓取动态网页和链接
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • @Mapper作用