现代化的PHP-写好注释

栏目: PHP · 发布时间: 7年前

内容简介:现代化的PHP-写好注释

注释

有个段子:程序员最恨写注释和不写注释的人。个人认为注释主要作用是方便别人或者自己以后能快速理解这段代码逻辑和提升开发效率,这样要说的是如何使用注释来提升开发效率。

总所周知,PHP 是弱类型语言,变量的类型是可以变的,但在实际业务中,一个变量或者函数的返回值往往是确定的,确定的类型能提升我们的编码效率,也能把一些低级的错误(弱类型不代表无类型)扼杀在摇篮里。

PHP 主要通过类型声明来说明变量的类型,PHP7 开始允许更多的函数参数类型限定。比如下面这个例子,声明入参是 int 类型,但使用了 array函数来处理,PhpStorm 能给出实时的提醒。

现代化的PHP-写好注释

调用函数参数错误的话也有提示:

现代化的PHP-写好注释

PHP 会有隐式类型转换,如上面传入浮点数的时候并没有提示错误,因为这也是合理的。不过 PHP 可以开启严格模式来检查此类错误。

现代化的PHP-写好注释

PHP 内置的类型声明基本上够用了,但一般使用注释来实现更加丰富的功能。PHPDoc 是注释 PHP 代码的非正式标准,它有许多不同的标记可以使用。PhpStorm 能根据函数/类方法自动生成基本的标记:

现代化的PHP-写好注释

基本标记 @param@return 也很好理解,参数和返回值,作用和 PHP 自带的类型声明差不多,主要用来限制调用方传参和使用返回值。除了这两个标记之外,还有很多 其它 比较好用的标记。

<?php
/**
 * @author A Name <a.name@example.com> 2018-01-01
 * @link https://docs.phpdoc.org/references/phpdoc/tags/link.html
 */
 
namespace Demo;
use Exception;
 
/**
 * Class DemoClass
 * @package Demo
 * @version 1.0
 */
class DemoClass
{
    /**
     * @var array
     */
    public $names = [];
 
    /**
     * methodA
     * @param int $a param a
     * @return int
     * @throws Exception when {$a} < 0
     */
    function methodA(int $a)
    {
        if($a < 0)
        {
            /**
             * @see Exception::getMessage()
             */
            throw new Exception('test');
        }
 
        return $a + 1;
    }
 
    /**
     * @deprecated
     * @since 1.0 deprecated
     * @todo del it
     * TODO del it
     */
    function methodB(){}
}
 
$demoA = new DemoClass();
$demoA->methodA([]);
array_keys($demoA->methodA(1));
$demoA->methodB();
$demoA->methodA($demoA->names);
 
$str = 'DemoClass';
/**
 * @var DemoClass $demoB
 */
$demoB = new $str();

@author ,顾名思义就是说明代码的作者。留下你的大名和时间,以后有问题了好找你。

@link ,主要是用来放一些相关的链接。

@package ,包名。 @version ,版本。

@Exception ,表示抛出的异常,当调用方未正确处理异常时会有提示。

现代化的PHP-写好注释

@see ,表示去这里看相关的参考,有点像 @link ,一般用作指向代码,方便 IDE 跳转查看。

现代化的PHP-写好注释

@deprecated ,表示这个方法以及弃用了。调用弃用的代码会有提示:

现代化的PHP-写好注释

@since ,记录版本变化,比如上面的例子说明 1.0 版本弃用了这个方法。

@todoTODO (PhpStorm 标记语法),表示这里还需优化改动一下,但现在还没改(

以后估计也不会改了

)。在提交代码时 PhpStorm 会提示你还有几个 todo。

@var ,声明变量的类型。这个标记看似鸡肋(一般 IDE 都有类型推导),但在 PHP 动态语言中有时非常有用。比如下面这个例子类名是字符串,IDE 就无法自动推导类型了:

现代化的PHP-写好注释

这是我们可以显式的注释一下:

现代化的PHP-写好注释


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

中国制造2025:产业互联网开启新工业革命

中国制造2025:产业互联网开启新工业革命

夏妍娜、赵胜 / 机械工业出版社 / 2016-2-22 / 49.00

过去20年,是中国消费互联网肆意生长的"黄金20年",诞生了诸如BAT等互联网巨头,而时至今日,风口正逐渐转向了产业互联网。互联网这一摧枯拉朽的飓风,在改造了消费服务业之后,正快速而坚定地横扫工业领域,拉开了产业互联网"关键30年"的大幕。 "中国制造2025"规划,恰是中国政府在新一轮产业革命浪潮中做出的积极举措,是在"新常态"和"供给侧改革"的背景下,强调制造业在中国经济中的基础作用,认......一起来看看 《中国制造2025:产业互联网开启新工业革命》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具